2

我正在玩视差滚动,就像在那个耐克网站上一样。所以我一直在使用scrollTop来确定用户在页面上的垂直位置,然后我一直在根据对该值的更改来调整元素的位置。

在这里,我将 scrollTop 值四舍五入并记录下来。我稍后会显示日志。

var distance = 60*(Math.round($(window).scrollTop()/60));
console.log(distance);

然后,在单击时,我调用此函数滚动到我传递给它的 scrollTop 值。

function goTo(n){
    console.log('begin animating');
    $('html,body').animate({scrollTop: n},2000);
}

这是问题所在,滚动顶部值在动画之前跳转到 0。

所以我将在页面的一半处记录:

begin animating
0
6240
6180
6120
// etc...

我定位东西的方式依赖于 scrollTop 值的准确性。所以我的问题是:

在执行动画之前,如何防止 scrollTop 值跳到 0?

让我知道是否需要更多信息。
这是该网站的现场版本:http: //theblueeyeguy.com/moon/Illumination/

(点击“下一个”然后“上一个”打破它)

4

1 回答 1

7

可能是因为您使用的是href="#".

添加return false;到您的onclick属性。

<a href="#" onClick="goTo(2160);return false;">< Prev | </a>
于 2011-11-29T23:20:18.160 回答