2

我正在使用一个灯箱,其中我在使用 jqueryscrolltop()函数时遇到了一些问题。当灯箱打开时,它会隐藏文档的滚动条(如果有)并将垂直滚动位置保存在变量中,当它关闭时,它会带回文档的滚动条并将滚动条设置为旧位置。这是代码:

            $('html').css({
                'overflow-y' : 'auto'
            });
            $('html').scrollTop(org_scrolltop);

在这种情况下scrollTop,功能根本不起作用。所以我尝试setTimeout了设置滚动位置的功能。这是代码:

            $('html').css({
                'overflow-y' : 'auto'
            });
            setTimeout(function(){
                $('html').scrollTop(org_scrolltop);
            },10);

现在它可以工作了,但页面时不时地抽搐。我也尝试过animate()功能,但徒劳无功。

可能发生的情况是,首先浏览器将滚动条设置为其默认位置,即 0,当我设置为时overflow-yauto然后$('html').scrollTop(org_scrolltop);这行代码正在执行。在这个过程中,页面抖动。

我想知道是否有任何干净的方法可以做到这一点,我的意思是不使用setTimeout. 任何想法都会非常有帮助。

4

1 回答 1

0

用这个:

$('html, body').animate({
    scrollTop: 0
}, 1000);

显然将 0 更改为您要滚动到的位置,并将 1000 更改为您希望滚动的时间。

于 2013-02-20T09:59:04.733 回答