滚动到鼠标滚轮的下一部分

时间:2019-11-18 14:09:07

标签: scrollto

我正在尝试创建一个水平滚动的一页网站。我使用了scrollTo库来使链接正常工作,除了鼠标滚轮滚动之外,它都可以正常工作。

HTML代码如下:

<main class="Index">
   <section id="new" class="Index-page"></section>
   <section id="another" class="Index-page"></section>
   <section id="lipsum" class="Index-page"></section>
</main>

,jQuery代码如下:

jQuery('section:first-child').addClass('active');
var timer = null;
    window.addEventListener('wheel', function(e) {
        if(timer !== null) {
          clearTimeout(timer);
        }
        timer = setTimeout(function() {
        var dir = Math.sign(e.deltaY);
        nsection(dir);
        }, 45);
    }, false);
    function nsection(dir){
        if( dir == 1 ) {
            var id = $('section.active').next().attr('id');
        }
        else {
            var id = $('section.active').prev().attr('id');
        }
        if (typeof id !== 'undefined' && curr != id) {
            $('.Content-outer').scrollTo('#' + id, 1000, {margin: true});
            $('section').removeClass('active');
            $('#' + id).addClass('active');
        }
    }

问题是,当我使用超时时,它可以正常工作,但是延迟约一秒钟,但我需要立即更改此部分。如果我删除了超时,那么它将从第一部分向右滚动直到最后一个。我会在这里感谢任何提示。谢谢。

0 个答案:

没有答案