当在桌面上查看时,我的div彼此重叠,并且不透明度链接到类,如下所示:

<div id="shell">
    <div class="box header is-active"></div>
    <div class="box not-active"></div>
    <div class="box footer not-active"></div>
</div>


我有一些jquery / javascript,它使用箭头键来处理用户的“上”和“下”页面移动,每个动作调用一个特定的功能。

我还有一个检测鼠标滚动并调用上移或下移功能的函数。

$(window).bind('mousewheel DOMMouseScroll', function(event) {
    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
        preDiv();
    }
    else {
        nextDiv();
    }
});


它们都可以工作,但是如果您滚动“太快”,则可以跳过下一部分。我如何才能做到这一点,无论向上或向下滚动时,无论速度如何,它只会跳一个格?

当然,还有一个jfiddle来显示我在谈论某些CSS和我正在使用的实际脚本的含义:

https://jsfiddle.net/6d5nk79o/4/

最佳答案

您可以在鼠标滚轮之后添加一个冷却间隔:

var cooldown = false;

$(window).bind('mousewheel DOMMouseScroll', function(event){
    if (cooldown)
        return;

    cooldown = true;
    setTimeout(function() { cooldown = false; }, 1000);

    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0)     {
        preDiv();
    }
    else {
        nextDiv();
    }
});


https://jsfiddle.net/dgwzaj36/

09-07 12:32