我尝试制作一个鼠标滚轮事件脚本,但由于我使用的是Apple Magic Mouse鼠标及其继续滚动功能,因此遇到了一些问题.
我想这样做http://jsfiddle.net/Sg8JQ/(来自jQuery Tools Scrollable with Mousewheel - 滚动一个位置并停止,使用http://brandonaaron.net/code/mousewheel/demos),但我想要一个简短的滚动到框时的动画(如250ms),以及在一个动画中多次滚动时能够通过多个框的能力.(如果我滚动,动画开始滚动到第二个盒子,但如果我再滚动,我想去第三个,如果我滚动两次,到第四,等等)
我首先想到stopPropagation/ preventDefault/ return false;可以"停止"鼠标滚轮速度(和var delta) - 所以我可以计算新滚动事件的数量(可能带有计时器) - 但是没有一个能做到.
想法?
编辑:如果您尝试使用这些鼠标在Google日历中滚动,则会切换多个日历,而不仅仅是一个日历.似乎他们也无法解决这个问题.
编辑2:我想解除绑定鼠标滚轮,并再次将其绑定后可以停止鼠标滚轮监听器(和不听的惯性结束).它没.
编辑3:尝试与日期一起工作(感谢这篇文章),不是最优的,但总比没有好http://jsfiddle.net/eZ6KE/
我需要保持一个元素的滚动偏移量与另一个元素(实际上是窗口)保持同步,并且我在移动Safari(iPad)上滚动的惯性"滚动"阶段遇到了麻烦.
我有几个div,position:fixed; overflow:hidden我需要保持他们的滚动偏移与窗口的一个同步(意味着整个身体滚动.)通常我会像这样(jQuery)编码:
var $win = $(window),
$div1 = $(...)
$win.scroll(function() {
$div1.scrollTop($win.scrollTop())
})
Run Code Online (Sandbox Code Playgroud)
但是在iPad上测试界面时,我注意到在触摸阶段,当你用手指拖动虚拟页面时,也没有在惯性阶段,当你放开并且页面减速到停下来
我通过注册touchmove事件的处理程序以及事件处理程序来解决拖动阶段scroll.
但我找不到解决惯性阶段问题的方法.div保持静止(并且慢慢地与页面的其余部分不同步),直到惯性运动达到完全停止,此时滚动事件最终被触发并且它跳到位置.
尝试在iPad上滚动它以查看"惯性晃动"问题.不幸的是,我无法让它在jsFiddle上工作,因为iPad在iframe滚动时出现奇怪的行为.
如果我可以在该阶段进行轮询,我可以保持两个元素之间的同步.我试过了setTimeout,setInterval和requestAnimationFrame,但是在惯性滚动阶段它们都没有发射.似乎所有Javascript都在此阶段停止.
问题: