Javascript 滚动前返回顶部

Javascript 滚动前返回顶部,javascript,jquery,Javascript,Jquery,我有一个功能,可以将页面滚动到给定的偏移量。我使用的是视差效果,所以我所有的元素(和页面,或“幻灯片”)都是根据滚动条的位置来定位的 我的小问题是,当我单击指向另一张幻灯片的链接时,它会将页面滚动到所需的偏移量,但会触发绑定的事件。这应该可以,以保持平滑效果。但是有一个小问题,似乎scrollTop函数在正确执行之前会返回到top一毫秒。因此,在滚动到正确的位置之前,每次单击链接时,似乎都会有另一个页面显示一毫秒 这是我的密码: for(var i=1;i<8;i++) {

我有一个功能,可以将页面滚动到给定的偏移量。我使用的是视差效果,所以我所有的元素(和页面,或“幻灯片”)都是根据滚动条的位置来定位的

我的小问题是,当我单击指向另一张幻灯片的链接时,它会将页面滚动到所需的偏移量,但会触发绑定的事件。这应该可以,以保持平滑效果。但是有一个小问题,似乎
scrollTop
函数在正确执行之前会返回到top一毫秒。因此,在滚动到正确的位置之前,每次单击链接时,似乎都会有另一个页面显示一毫秒

这是我的密码:

    for(var i=1;i<8;i++)
    {
        (function(slideNum) {
            var tempName = 'slide'+slideNum;
            //console.log(defaultPositions["slide"+i].top);
            $('a.slide'+i).bind('click', function() {
                $.scrollTo((defaultPositions[tempName].top/slidesScrollSpeed)+1+'px', 800);
            });
        })(i);
    }

for(var i=1;i您需要阻止链接的默认操作。我假设您的链接上有类似
href=“#”
的内容?将您的单击绑定更改为:

$('a.slide'+slideNum).bind('click', function(event) {
    event.preventDefault();
    $.scrollTo((defaultPositions[tempName].top/slidesScrollSpeed)+1+'px', 800);
});

编辑:我注意到您将
I
作为
slideNum
传入,但随后使用
I
,因此我更改了我的代码以使用存储在
slideNum
中的传入值。您需要防止链接的默认操作。我假设您的链接上有类似
href=“#”
的内容?将您的单击绑定更改为:

$('a.slide'+slideNum).bind('click', function(event) {
    event.preventDefault();
    $.scrollTo((defaultPositions[tempName].top/slidesScrollSpeed)+1+'px', 800);
});

编辑:我注意到您将
I
作为
slideNum
传入,但随后使用
I
,因此我将代码更改为使用
slideNum

中存储的传入值。哇,它很有效,非常感谢,就是这样!我完全忘记了默认操作。哇,它有效,非常感谢,就是这样!我完全忘记了de过失行为。