我正在使用一个灯箱,其中我在使用 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-y
,auto
然后$('html').scrollTop(org_scrolltop);
这行代码正在执行。在这个过程中,页面抖动。
我想知道是否有任何干净的方法可以做到这一点,我的意思是不使用setTimeout
. 任何想法都会非常有帮助。