我在那个耐克网站上玩Parallax滚动.所以我一直在使用scrollTop来确定用户在页面上的垂直位置,然后我一直根据对该值的更改调整元素的位置.
在这里,我舍入scrollTop值并记录它.我稍后会显示日志.
var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);
Run Code Online (Sandbox Code Playgroud)
然后,在单击时,我调用此函数滚动到我传递的scrollTop值.
function goTo(n){
console.log('begin animating');
$('html,body').animate({scrollTop: n},2000);
}
Run Code Online (Sandbox Code Playgroud)
这是问题,在动画制作之前,滚动顶部值会跳转到0.
所以我会在页面的中间位置记录下来:
begin animating
0
6240
6180
6120
// etc...
Run Code Online (Sandbox Code Playgroud)
我定位东西的方式依赖于scrollTop值的准确性.所以我的问题是:
在完成动画之前,如何让scrollTop值保持跳转到0?
如果需要更多信息,请告诉我.
以下是该网站的实时版本:http://theblueeyeguy.com/moon/Illumination/
(点击'下一步'然后'上一个'来打破它)