需求及实现原理:
- 点击按钮回到页面顶部—利用js
scrollTo
滚动滑轮到指定位置 - 减速滑动—利用css的scroll-behavior平滑滚动样式
- 回到顶部后按钮消失—利用js
onscroll
滚动距离设置if语句,当小于窗口高度设置按钮消失
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
html{scroll-behavior: smooth;}/*让鼠标平滑滚动减速*/
body{height: 5000px;}/*设置滚动条*/
#top{
position: fixed;
top: 500px;
display:none;
}/*回到顶部按钮*/
.grey{width: 100%;height: 200px;background-color: gray;}
.blue{width: 100%;height: 200px;background-color: blue;}
</style>
</head>
<body>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<div class="grey"></div>
<div class="blue"></div>
<button id="top">回到顶部</button>
<script>
/*取窗口高度*/
var long=innerHeight
/*设置顶部按钮行为回到顶部*/
top.onclick=function(){
window.scrollTo(0,0)
}
/*设置顶部按钮的出现与消失*/
window.onscroll=function(){
if(document.documentElement.scrollTop>long){
function present(){
document.getElementById("top").style.display="inline-block"
}
present()
}else{function hidden(){
document.getElementById("top").style.display="none"
}
hidden()
}
}
</script>
</body>
</html>
QQ录屏20230111000201