【问题标题】:$(window).scroll not accurate, when scrolling fast$(window).scroll 不准确,快速滚动时
【发布时间】:2012-10-29 21:07:52
【问题描述】:

我正在尝试操纵元素的位置,因此在某些页面滚动位置之间,他的 css 发生了变化。 看看这个简单的例子:http://jsfiddle.net/6RtTX/8/

问题是 - $(window).scroll 不太准确,所以如果我滚动得非常快,它就会变得非常混乱。

有没有办法解决这个问题?我可以在 $(window).scroll 方法中对这些操作进行排队吗?

提前致谢。

【问题讨论】:

  • 去抖动 - 滚动事件经常触发。
  • 试过了 - 没有帮助,去抖动只是跳过了间隔之间的方法调用
  • 对于这个简单的事情,你应该在滚动视图在右侧区域时设置position:fixed
  • 这只是一个小例子。我希望能够进行更高级的重新定位
  • 我没有看到你所说的这种“混乱”行为。它在 Firefox 中运行得非常好,滚动流畅,Chrome 默认闪烁很少,除非您使用 position:fixed,否则闪烁不会消失。

标签: javascript jquery


【解决方案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
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多