2012-11-09 79 views
5

我试图操纵元素的位置,所以在某个页面滚动位置之间,他的css被改变了。 看看这个简单的例子:http://jsfiddle.net/6RtTX/8/

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

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

在此先感谢。

+0

反弹 - 滚动事件经常发生。 – Bergi

+0

试图 - 没有帮助,debounce只是跳过间隔的方法调用 – LorDex

+3

对于这个简单的事情,你应该设置位置:固定当滚动视图在正确的区域 – Bergi

回答

0

尝试改变你这样的提琴代码:

$(window).scroll(function(event) { 
    if (event.pageY > 100 && event.pageY < 5000) { 
     $('.test').css({ 
      'left' : $(window).scrollTop() - 80, 
      'top' : $(window).scrollTop() + 100 
     });    
    } 
}); 

通过使用传递的事件,以获得测量,而不是再次测量,我发现,准确性大大提高。

+0

它不适用于我,你使用的是什么jQuery版本? – neoDev

+0

即时通讯使用1.8.3,但这应该真正适用于任何版本的jQuery。 – katzenhut

+0

不知道,因为昨天我注意到,最近jQ版本没有'event.pageY' – neoDev