原生javascript点击缓动返回顶部按钮
实现的效果:页面滚动一定像素大小的位置后,显示出返回顶部按钮,点击该按钮,页面缓慢自动滚动到顶部。
HTML代码:
<div id="box"></div> <div id="btn">返回顶部</div>
CSS代码:
PS:以下样式代码仅供测试,可以修改为自己喜欢的样式
body {position:relative; margin:0; padding:0;} #box {width:200px; height:4000px; background-color:green;} #btn {width:50px; height:50px; background-color:red; position:fixed; bottom:10px; right:10px; cursor:pointer; display:none;}
javascript代码:
window.onload = function(){ //文档加载完成后 var box = document.getElementById("box"); //获取DOM对象 var btn = document.getElementById("btn"); //获取DOM对象 var timer = null; //定义timer window.onscroll = function(){ //窗口开始滚动 var scroll_top = document.documentElement.scrollTop || document.body.scrollTop; //获取滚动的高度 var scrollheight = document.body.scrollHeight; //获取文档的高度 if(scroll_top < 300){ //判断滚动的高度是否小于300px btn.style.display="none"; //如果是则不显示“返回顶部”按钮 }else{ btn.style.display="block"; //如果不是则显示“返回顶部”按钮 } btn.onclick=function(){ //点击返回顶部按钮 clearInterval(timer) //停止执行timer函数 if(scroll_top > 0){ //当滚动的高度大于0px时 timer = setInterval(function(){ //执行函数 var speed = (0 - scroll_top) / 8; //定义速度 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); //计算 scroll_top = scroll_top + speed; console.log(scroll_top) document.documentElement.scrollTop = scroll_top; if(scroll_top<=0){ //当滚动的小于或等于0px时 clearInterval(timer); //停止执行timer函数 alert("结束了"); //弹出提示窗口 } },30) } } } }
代码来自:https://blog.csdn.net/namechenfl/article/details/81380566