Javascript用鼠标缓慢滚动到页面上的下一个 anchor

标签 javascript html css scroll scrollto

我有一个带有多个 anchor 的单页网站。我引用这个 fiddle 示例 http://jsfiddle.net/kamikazefish/t6LLybx8/201/用于在使用鼠标滚轮时将页面前进到下一个 anchor 。有没有一种方法可以控制速度,如果有人可以提供帮助,我将不胜感激。请记住,我对代码非常陌生,如果它被写出来,我会喜欢它,而不仅仅是告诉我添加一个函数或其他东西,谢谢。这是 JavaScript。

(function() {
    var delay = false;

    $(document).on('mousewheel DOMMouseScroll', function(event) {
        event.preventDefault();
        if(delay) return;

        delay = true;
        setTimeout(function(){delay = false}, 200)

        var wd = event.originalEvent.wheelDelta || -event.originalEvent.detail;

        var a= document.getElementsByTagName('a');
        if(wd < 0) {
            for(var i = 0 ; i < a.length ; i++) {
                var t = a[i].getClientRects()[0].top;
                if(t >= 40) break;
            }
        }
        else {
            for(var i = a.length-1 ; i >= 0 ; i--) {
                var t = a[i].getClientRects()[0].top;
                if(t < -20) break;
            }
        }
        $('html,body').animate  ({
            scrollTop: a[i].offsetTop
        });
    });
})();

最佳答案

您只需添加希望动画运行的时间,如下所示:

$('html,body').animate({
    scrollTop: a[i].offsetTop
}, 1000);

其中 1000 是以毫秒为单位的时间。如果您希望速度更慢,请增加此数字。

关于Javascript用鼠标缓慢滚动到页面上的下一个 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350827/

相关文章:

PHP 邮件();以纯文本和 HTML 格式发送电子邮件

html - 提高表格的响应能力

javascript - 尝试设置 openlayers3 的样式

javascript - 定期发送捕获的图像 javascript webrtc

javascript - 无法(仅)访问对象的某些属性 (JavaScript)

javascript - 使用jquery验证信用卡

javascript - 更改模态加载的 url

javascript - 获取 innerHTML 值 - 仅纯文本

firefox - FireFox 3.6.15+ 中图像的圆 Angular 仍然不起作用?

javascript - 尝试使用 session 存储,获取 "Unable to set property ' logon' of undefined or null reference