我试图在鼠标滚轮事件上禁用鼠标滚轮,并仅在操作完成后才启用它。
$(window).on('DOMMouseScroll mousewheel', function (event) {
//disable mousewhell until the following animation is complete
$('.box').animate({
margin: div_offset+'px 0 0 0'
}, 500);
//enable mousewhell
return false;
});
我还希望代码忽略第一个滚动之后的每个滚动,直到动画完成。在这种特殊情况下,我希望动画只完成一次,即使用户在鼠标滚轮上滚动超过一格。基本上在这种情况下,我希望在一次鼠标滚动“滴答”后禁用鼠标滚轮 500 毫秒,并且不注册剩余的“滴答”(如果用户在这 500 毫秒内滚动 10 次滴答,我只想一个动画,其余的被忽略)。 500 毫秒后,我希望再次启用鼠标滚轮。
我提前谢谢你。
我最初确实将这个问题作为重复问题关闭,但被告知它只回答了问题的一半。我重新打开它以添加建议的解决方案,以便在动画完成之前不再处理事件。
使用动画complete
如建议的这个帖子
您应该能够执行类似的操作:
var animating = false;
$(window).on('DOMMouseScroll mousewheel', function (event) {
if(animating){
return false;
}
animating = true;
$('.box').animate({
margin: div_offset+'px 0 0 0'
}, 500, function(){
animating = false;
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)