j查询窗口滚动事件.每滚动 XX 个像素
jQuery window scroll event. For every XX pixels scrolled
我正在为一个项目使用优秀的jQuery Reel插件(http://jquery.vostrel.cz/reel(。我想绑定到窗口滚动事件,因此当用户向下滚动页面时,插件每滚动 10px 就会前进 1 帧,如果用户向上滚动动画,则动画会反转。
该插件具有我可以毫无问题地传递值的方法,并且我知道如何绑定到窗口滚动事件。我正在挣扎的是最后一个。
如何使用 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,开始了我认为你需要的东西。
http://jsfiddle.net/qJhRz/3/
我只是计算您需要的帧并将其存储在变量中。它和你要找的一样吗?
- 幻灯片滚动javascript不起作用
- 将视口底部滚动到元素底部
- jQuery Lazy加载动画滚动
- 设置滑块分区上的滚动
- 结合jQuery和jetpack无限滚动
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- 滚动到容器中的下一个元素-几乎到了
- 只覆盖箭头键滚动事件
- Javascript如何找到滚动事件的来源
- Image赢得't隐藏在滚动jQuery上
- Safari(Mac OS)上的jQuery平滑滚动问题
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 禁用(而不是隐藏)浏览器滚动条
- Jquery模板,如果xx&&如果yy
- JavaScript上下滚动不可预测
- 滚动和表格
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 我希望只有在我滚动页面后才能显示我的返回页首图标
- j查询窗口滚动事件.每滚动 XX 个像素
- jQuery,如果窗口滚动了X个像素做这个,否则如果窗口滚动了XX个像素做别的