Html
    Css
    Js

    
                        
* {
	border:0;
	margin:0;
	padding:0;
	outline:0;
}
html,body {
	width:100%;
	height:100%;
}
/*主内容区*/
.box {
	width:1190px;
	height:3000px;
	margin:0 auto;
	background-color:#2BB3FF;
}
/*置顶按钮*/
#btn {
	width:40px;
	height:40px;
	position:fixed;
	right:16%;
	bottom:10px;
	/*no-repeat为不平铺,*/
	background:url(../img/index-huidaodingbu.jpg) no-repeat left top;
	border:1px solid #CCCCCC;
	display:none;
}
#btn:hover {
	background:url(../img/index-huidaodingbu.jpg) no-repeat left -40px;
}

                        
↑上面代码改变,会自动显示代码结果 jQuery调用版本:2.1.4
 立即下载

原生JS实现回到顶部功能

//页面加载完毕后触发
window.onload = function() {
    //用来获取存在页面的btn标签
    var obtn = document.getelementbyid('btn');
    //获取可视区的高度
    var clientheight = document.documentelement.clientheight;
    //创建存放定时器的变量
    var timer = null;
    //创建中途停止的变量
    var istop = true;
    //中途停止,onscroll事件为滚动条一滚动就触发此事件
    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() {
        ////获取可视区的高度
        //alert(clientheight);
        //写定时器,动画效果的函数setinterval(),放一个匿名函数function()
        timer = setinterval(function() {
            // 双|表示如果不支持第一种就使用第二种
            var ostop = document.documentelement.scrolltop || document.body.scrolltop;
            //写速度,此处5为整数,为了预防非整数添加函数math.floor()包裹,因为置顶不为0所以-的ostop
            var ispeed = math.floor(-ostop / 5);
            //    //测出滑动到的位置距顶部多高
            //    alert(ostop);
            //改写滚动条的数值(此处把数值50赋值给不同的浏览器),=50直接返回距顶部200的位置,-=50是只返回200的距离
            //          document.documentelement.scrolltop = document.body.scrolltop -= 50;
            //          因为置顶不为0,还因为var ispeed = math.floor(-ostop / 5);所以ostop + ispeed
            document.documentelement.scrolltop = document.body.scrolltop = ostop + ispeed;
            //隔多久执行一次,此处为30毫秒
            //因为中途停止,此处要改为true
            istop = true;
            //后台输出 继续改进下滑不了的情况
            console.log(ostop - ispeed);
            //因为回到顶部后,下滑不执行,还仍重复回到顶部,此处加判断
            if (ostop == 0) {
                //清除定时器
                clearinterval(timer);
            }
        }, 30);
    }
}


0