我正在使用jQuery cycle与鼠标滚轮插件结合使用。我已经构建了它,以使鼠标滚轮根据滚动方式在循环中移动。然而,一旦循环发生变化,我希望暂时防止鼠标滚轮移动循环,直到它向相反方向移动或者直到循环移动速度变慢。
是否有任何方法可以暂时停止事件在每次被触发后被触发?
我已经创建了一个JSBIN:
编辑:修复了鼠标滚轮问题,现在它可以正常工作了。
--
编辑:在r0m4n的帮助下,我成功地找到了一个很好的解决方案。下面的答案很好,但会在调用滚动之前创建一点延迟,因此我决定创建一个可以绑定和重新绑定的函数。
function wheelMove(event,deltaY) {
event.preventDefault();
$('#cycle').unbind('mousewheel', wheelMove);
if (deltaY > 0) {
$('#cycle').cycle('next');
}
if (deltaY < 0) {
$('#cycle').cycle('prev');
}
}
$(document).ready(function(){
$('#cycle').cycle({
fx: 'scrollVert',
speed: 800,
timeout: 0,
after: function(){
interval = setTimeout(function(){
$('#cycle').bind('mousewheel', wheelMove);
},1600);
}
});
$('#cycle').bind('mousewheel',wheelMove);
});