原生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

关键词: javascript代码

网友留言(0条)

发表评论