JavaScript实现回到顶部

实现回到顶部,先快后慢,在回到顶部过程中可以滚动滚轮打断回到顶部过程。
回到顶部按钮在第二屏才会出现,回到第一屏消失。

<!DOCTYPE html>
<!--实现回到顶部,先快后慢,在回到顶部过程中可以滚动滚轮打断回到顶部过程。-->
<!--回到顶部按钮在第二屏才会出现,回到第一屏消失。-->
<html>
<head>
    <meta charset="utf-8">
    <title>回到顶部实例</title>
</head>
<script type="text/javascript">
    window.onload = function(){
        var obtn = document.getElementById('btn');
        var clientHeight = document.documentElement.clientHeight;
        var timer = null;
        var isTop = true;
        //滚动条滚动时触发
        window.onscroll=function() {
            var osTop = document.documentElement.scrollTop||document.body.scrollTop;
            if (osTop>clientHeight) {
                obtn.style.display ='block';
            }else{
                obtn.style.display = 'none';
            }
            if (!isTop) {
                clearInterval(timer);
            }
            isTop=false;
        }
        //点击返回顶部按钮触发
        obtn.onclick = function(){
            clearInterval(timer);
            timer =setInterval(function(){
                var osTop = document.documentElement.scrollTop||document.body.scrollTop;
                var ispeed = Math.floor(-osTop/7);//对浮点数向下取整,小于或者等于该参数的最大整数。
                document.documentElement.scrollTop = document.body.scrollTop = osTop+ispeed;
                isTop=true;
                console.log(osTop);
                if (osTop==0) {
                    clearInterval(timer);
                }
            },30)
        }
    }
</script>
<style>
body
{
    background-color: lightblue;
    height: 7001px;
}
a
{
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: none;
}
</style>
<body>
    <a href="javascript:;" id="btn">回到顶部</a>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容