• 原生JS回去顶部


    直接上代码

        window.addEventListener("load", function() {
            var btn = document.getElementById('GO');
            btn.addEventListener("mouseover", moveIn, false);
            btn.addEventListener("mouseout", moveOut, false);
    
            function moveIn() {
                btn.style.color = "#ffffff"; //修改的是内联样式,具有最高的优先级;
                btn.style.textIndent = "0em";
                btn.style.backgroundImage = "none";
                btn.style.backgroundColor = "#FF4401";
            }
    
            function moveOut() {
                btn.style.textIndent = "-9999em";
                btn.style.backgroundImage = "url(icons.png)";
            }
    
            function goTop(acceleration, time) { //修改参数可调整返回顶部的速度
                acceleration = acceleration || 0.1;
                time = time || 10;
                var speed = 1 + acceleration;
    
                function getScrollTop() { //取得滚动条的竖直距离
                    return document.documentElement.scrollTop || document.body.scrollTop;
                }
    
                function setScrollTop(value) { //设置滚动条的竖直距离,实现效果的关键就是在很短的间隔时间内不断地修改滚动条的竖直距离,以实现滚动效果
                    document.documentElement.scrollTop = value;
                    document.body.scrollTop = value;
                }
                window.onscroll = function() {
                    var scrollTop = getScrollTop();
                    if (scrollTop > 100) { //判断滚动条距离窗口顶部多远时显示出来,这里是100px
                        btn.style.display = "block";
                    } else {
                        btn.style.display = "none";
                    }
                };
                btn.onclick = function() {
                    var timer = setInterval(function() {
                        setScrollTop(Math.floor(getScrollTop() / speed)); //这行代码是关键,取得滚动条竖直距离,除以speed后再给滚动条设置竖直距离
                        if (getScrollTop() == 0)
                            clearInterval(timer);
                    }, time);
                };
            }
            goTop(0.2, 8);
        }, false);
  • 相关阅读:
    JDBC_批处理Batch_插入2万条数据的测试
    JDBC_ResultSet结果集用法_游标原理_关闭连接问题
    JDBC_PreparedStatement用法_占位符_参数处理
    python_字符串_常用处理
    R-biomaRt使用-代码备份
    R-描述性统计
    django开发傻瓜教程-3-celery异步处理
    Head First Java-图形化界面
    javascript隐藏和显示元素以及清空textarea
    Entrez Direct
  • 原文地址:https://www.cnblogs.com/hasubasora/p/6677221.html
Copyright © 2020-2023  润新知