我使用wheelDelta检查滚动方向,但它一次返回大量的滚动属性。我只需要知道它是否已启动或关闭,并且在第一次触发后它不应该在500毫秒内返回一个值。我试图玩setTimeout,但不能很好地解决它。有任何想法吗?jQuery功能 - 阻止获得回报“一段时间”
var distance = $('.section-two').offset().top,
$window = $(window);
$window.scroll(function() {
if ($window.scrollTop() >= distance) {
$('body').css('overflow', 'hidden');
setTimeout(function(){
$(document).bind('mousewheel', function(evt) {
var delta = evt.originalEvent.wheelDelta;
if(delta > 0){
console.log('scrolled up')
} else {
console.log('scrolled down');
}
})
}, 500);
}
});
感谢乌米特,它实际上有点帮助,但无法解决问题。我还将示例上传到了CodePen:https://codepen.io/cangoktas/pen/wdPYEy –
随着解除绑定,它将在鼠标滚轮的每个勾号中返回1个结果。这是听众'鼠标滚轮'可以获得的最低结果。如果你想让它工作的话;在拖动鼠标滚轮而不重置它的情况下,它只返回一个结果,您应该考虑更改事件侦听器。编辑CodePen:https://codepen.io/anon/pen/vmWVVg –
我想我有点整理出来setTimeout:https://codepen.io/cangoktas/pen/LyOgqN再次感谢,iyi geceler :) –