【发布时间】:2013-02-20 07:34:02
【问题描述】:
我正在使用一个灯箱,在其中我遇到了 jquery scrolltop() 函数的一些问题。
当灯箱打开时,它会隐藏文档的滚动条(如果有)并将垂直滚动位置保存在变量中,当它关闭时,它会带回文档的滚动条并将滚动条设置为旧位置。这是代码:
$('html').css({
'overflow-y' : 'auto'
});
$('html').scrollTop(org_scrolltop);
在这种情况下scrollTop 函数根本不起作用。所以我尝试了setTimeout 函数来设置滚动位置。这是代码:
$('html').css({
'overflow-y' : 'auto'
});
setTimeout(function(){
$('html').scrollTop(org_scrolltop);
},10);
现在它可以工作了,但页面时不时地抖动。我也尝试了animate() 功能,但没有成功。
可能发生的情况是,当我将overflow-y 设置为auto 时,首先浏览器将滚动条设置为其默认位置,即0,然后$('html').scrollTop(org_scrolltop); 这行代码正在执行。在这个过程中页面会抖动。
我想知道是否有任何干净的方法可以做到这一点,我的意思是不使用setTimeout。任何想法都会非常有帮助。
【问题讨论】:
-
“在这个过程中页面突然关闭”——措辞!! :)
标签: jquery scroll scrollbar scrolltop