HTML DOM 事件(实现一个简单的回到顶部功能)

我是研究僧i 提交于 2019-12-30 04:27:36

HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。事件通常与函数结合使用,函数不会在事件发生前被执行! (如用户点击按钮)。

利用onscroll事件写一个回到顶部功能,代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
        *{margin: 0;padding: 0;}
            #mybtn{position: fixed;height: 40px;width: 100px;background: red;border: none;border-radius: 5px;right: 20px;bottom: 20px;cursor: pointer;display: none;}
            #mybtn:hover{background-color: #888888;color: #FFFFFF;}    
    </style>
</head>
<body>
    <button id="mybtn" onclick="topfunction()" title="返回顶部">返回顶部</button>
    <div style="height: 100px;background-color: #000000;color: #FFFFFF;font-size: 50px;text-align: center;line-height: 100px;">向下滑动</div>
    <div style="background-color: lightgray;padding: 30px  30px 2500px;text-align: center;font-size: 30px;">实现返回顶部功能</div>
</body>
    <script>
        //浏览器窗口执行
        window.onscroll = function(){
            changeScroll();
        }
        //改变滚动距离 
        function changeScroll(){
            if(document.body.scrollTop >20 || document.documentElement.scrollTop >20){
                document.getElementById("mybtn").style.display = "block";
            }else{
                document.getElementById("mybtn").style.display = "none";
            }
        }
        function topfunction(){
            var timer = setInterval(function(){
                document.body.scrollTop -= 20;
                document.documentElement.scrollTop -=20;
                if(document.body.scrollTop ==0 && document.documentElement.scrollTop ==0){
                    clearInterval(timer);
                }
            },30)
        }
    </script>
</html>
专门建立的学习Q-q-u-n: 731771211,分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧
(从零基础开始到前端项目实战教程,学习工具,全栈开发学习路线以及规划

效果如下:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!