js实现回到顶部效果

实现原理:利用a标签回到顶部的链接, href=”javascript:;”是用来阻止a标签的默认行为。

html代码

<a href="javascript:;" id="return_top" title="回到顶部">返回顶部</a>

css代码(始终固定在屏幕右下角)

#return_top{
    width:40px; 
    height:40px;
    position:fixed; 
    right:25px; 
    bottom:10px; 
    display:none; 
    background-color: #FFFFFF;
}

js代码

<script type="text/javascript">
//      回到顶部效果
        window.onload = function(){
            var obtn = document.getElementById('return_top');  //获取回到顶部按钮的ID
            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(){    //回到顶部按钮点击事件
                //设置一个定时器
                timer = setInterval(function(){
                    //获取滚动条的滚动高度
                    var osTop = document.documentElement.scrollTop || document.body.scrollTop;
                    //用于设置速度差,产生缓动的效果
                    var speed = Math.floor(-osTop / 6);
                    document.documentElement.scrollTop = document.body.scrollTop = osTop + speed;
                    isTop =true;  //用于阻止滚动事件清除定时器
                    if(osTop == 0){
                        clearInterval(timer);
                    }
                },30);
            }
        }
    </script>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,695评论 1 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,306评论 0 3
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,068评论 0 0
  • 虽然百度的相关信息一般还不错吧,但是在具体的定制化上,但是在搜索编程相关的词汇的时候,还是有待调整吧。 【搜索PH...
    辛星0913阅读 278评论 1 0