$(window).scroll 不准确,快速滚动时
Posted
技术标签:
【中文标题】$(window).scroll 不准确,快速滚动时【英文标题】:$(window).scroll not accurate, when scrolling fast 【发布时间】:2012-10-29 21:07:52 【问题描述】:我正在尝试操纵元素的位置,因此在某些页面滚动位置之间,他的 css 发生了变化。 看看这个简单的例子:http://jsfiddle.net/6RtTX/8/
问题是 - $(window).scroll
不太准确,所以如果我滚动得非常快,它就会变得非常混乱。
有没有办法解决这个问题?我可以在 $(window).scroll 方法中对这些操作进行排队吗?
提前致谢。
【问题讨论】:
去抖动 - 滚动事件经常触发。 试过了 - 没有帮助,去抖动只是跳过了间隔之间的方法调用 对于这个简单的事情,你应该在滚动视图在右侧区域时设置position:fixed
这只是一个小例子。我希望能够进行更高级的重新定位
我没有看到你所说的这种“混乱”行为。它在 Firefox 中运行得非常好,滚动流畅,Chrome 默认闪烁很少,除非您使用 position:fixed
,否则闪烁不会消失。
【参考方案1】:
尝试像这样更改小提琴的代码:
$(window).scroll(function(event)
if ( event.pageY > 100 && event.pageY < 5000)
$('.test').css(
'left' : $(window).scrollTop() - 80,
'top' : $(window).scrollTop() + 100
);
);
通过使用传递的事件来获取测量值而不是再次测量,我发现准确性大大提高了。
【讨论】:
它对我不起作用,你使用的是什么 jQuery 版本? 我使用的是 1.8.3,但这应该适用于任何版本的 jQuery。 不确定,因为昨天我注意到最近的 jQ 版本没有event.pageY
以上是关于$(window).scroll 不准确,快速滚动时的主要内容,如果未能解决你的问题,请参考以下文章