需求
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/da2c5ba75de12ba2420e36ca22921b14.png)
html部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="D:\Web\考核二-任务一\考核二-任务一.css">
</head>
<body>
<div id="box1">
我在顶部
<button id="btn">回到顶部</button>
</div>
<script type="text/javascript" src="D:\Web\考核二-任务一\考核二-任务一.js">
</script>
</body>
</html>
css部分
*{
padding: 0;
margin: 0;
}
ul ol{
list-style: none;
}
a{
text-decoration: none;
}
#box1{
height: 2500px;
width: 600px;
margin: 0 auto;
background-color: aquamarine;
}
#btn{
width: 50px;
height: 50px;
position: fixed;
bottom: 5px;
right: 5px;
display: none;
}
JavaScript部分
window.onscroll=function(){
console.log(console.log(document.documentElement.scrollTop||document.body.scrollTop))
if((document.documentElement.scrollTop||document.body.scrollTop)>50){
console.log("显示回到顶部按钮")
btn.style.display="block"
}else{
console.log("隐藏回到顶部按钮")
btn.style.display="none"
}
}
btn.onclick=function(){
var timer = setInterval(function(){
var oTop = window.scrollY
var oft = oTop-(oTop*0.2+100)
if(oft>0){
window.scrollTo(0,oft);
}else{
window.scrollTo(0,0);
clearInterval(timer);
}
},30)
}
样式截图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a02970f4433d05c9e4ee759fd44c754c.png)
实现原理
- 先写出一个按钮标签用fix定位使按钮定位在右下角并隐藏
- 写一个div并且设置高度
- 用js代码写当高度到达一定程度时时按钮显示出来
- 用定时器赋值给点击事件
- 在定时器里设置每次上升高度并且都不同