【问题标题】:How to change this script to autoscroll?如何将此脚本更改为自动滚动?
【发布时间】:2018-05-17 10:33:47
【问题描述】:

我有一个脚本,它有一个滚动网站的按钮,但我需要它在页面加载时自动滚动。我需要脚本完全像下面显示的那样滚动,除了按钮。谁能帮我改一下?我是 javascript 新手,谢谢..

function scroll(element, speed) {
    var distance = element.height();
    var duration = distance / speed;
    element.animate({scrollTop: distance}, duration, 'linear');
}

$(document).ready(function() {
    $("button").click(function() {
        scroll($("html, body"), 0.015); // Set as required
    });
});

【问题讨论】:

  • 移除 $("button").click(function() {
  • 谢谢它的工作。现在我想我看起来很愚蠢..
  • 没问题,我们正在学习。干杯!
  • 我注意到它没有滚动到页面的末尾并停在中间的某个地方。你知道怎么解决吗?
  • 查看滚动函数(),第一个参数是$("html, body"),函数计算高度并滚动到元素的底部。所以...放一个元素来滚动到它。

标签: javascript autoscroll


【解决方案1】:

在窗口加载时调用滚动函数,这将在加载完成时滚动页面。

$(window).on('load', function(){
 scroll($("html, body"), 0.015); // Set as required
})

【讨论】:

    【解决方案2】:

    你可以试试下面的 JavaScript 代码

    var div = $('.autoscroller');
    
    $('.autoscroller').bind('scroll mousedown wheel DOMMouseScroll mousewheel keyup', function(evt) {
        if (evt.type === 'DOMMouseScroll' || evt.type === 'keyup' || evt.type === 'mousewheel') {
    
        }
        if (evt.originalEvent.detail < 0 || (evt.originalEvent.wheelDelta && evt.originalEvent.wheelDelta > 0)) { 
            clearInterval(autoscroller);
        }
        if (evt.originalEvent.detail > 0 || (evt.originalEvent.wheelDelta && evt.originalEvent.wheelDelta < 0)) { 
            clearInterval(autoscroller);
        }
    });
    
    var autoscroller = setInterval(function(){
        var pos = div.scrollTop();
        if ((div.scrollTop() + div.innerHeight()) >= div[0].scrollHeight) {
            clearInterval(autoscroller);
        }
        div.scrollTop(pos + 1);
    }, 50);
    

    在这里加载页面。文本会自动滚动到页面末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-24
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多