jQuery窗口滚动事件。 滚动的每个XX像素
我正在使用优秀的jQuery Reel插件( http://jquery.vostrel.cz/reel )进行项目。 我想绑定到窗口滚动事件,所以当用户向下滚动页面时,插件前进1帧,例如每10px滚动一次,如果用户向上滚动动画则反转。
插件有方法我可以传递值没有问题,我知道如何绑定到窗口滚动事件。 我正在努力的是最后一次。
我如何使用jQuery / JavaScript来表示在任何垂直方向上滚动的每10个像素在动画中前进1帧? 我知道我可以将窗口滚动存储在一个变量中,但我不确定每次碰到10个前进一帧的倍数时该怎么说。
提前谢谢了。
编辑
感谢下面用户的帮助,我找到了一个解决方案。 如下:
$(window).scroll(function() { windowScrollCount = $(this).scrollTop(); animationFrame = Math.round(windowScrollCount / 100); });
所以这里我在windowScrollCount中获取滚动距离,将其转换为animationFrame中的帧并使用.reel(“frame”,animationFrame)将其设置回来。 我实际上是每100帧一次这样做,因为每10帧就要快。
感谢codef0rmer和noShowP的帮助,我制定了一个解决方案。 如下:
$(window).scroll(function() { windowScrollCount = $(this).scrollTop(); animationFrame = Math.round(windowScrollCount / 100); });
所以这里我在windowScrollCount中获取滚动距离,将其转换为animationFrame中的帧并使用.reel(“frame”,animationFrame)将其设置回来。 我实际上是每100帧一次这样做,因为每10帧就要快。
如果我错了你可能会想要这个:
var jump = 500; // consider this is your 10px window.scrollHeight = 0; $(window).scroll(function () { console.log($(this).scrollTop()); var diff = $(this).scrollTop() - window.scrollHeight; if (diff >= jump) { window.scrollHeight = $(this).scrollTop(); console.log('reload frame'); } });
演示: http : //jsfiddle.net/Dyd6h/
您可以在页面顶部添加粘性元素,
位置:固定; 前0; 左:0;
(如果你愿意,隐藏)。
然后在滚动时可以监视其偏移量:
$('element').offset().top
然后,您可以看到您滚动页面的距离,因此每次滚动时都会看到它的最高值是什么并且适当地触发事件?
编辑:
我已经建立了一个小JSfiddle,开始我认为你需要的东西。
我只是计算你需要的框架并将其存储在变量中。 这就像你在找什么?