HTML页面中返回顶部的几种实现
HTML页面中返回顶部的几种主流实现方式
最近在开发网站需要制作返回顶部按钮,但是我平时主要做后端开发,对前端不太熟练,经过网上资料查询,制作出了返回顶部的按钮,下面是两种简单的方式,记录一下.喜欢本网站的朋友可以收藏下,会不定期更新学习资料.
一. 使用链接和锚点
这种方式适用于较简单的页面,通过在页面底部添加一个返回顶部的链接,并在页面顶部添加一个带有锚点的元素来实现。例如:
<a href="#top">返回顶部</a>
<!-- ... -->
<div id="top">页面顶部</div>
这里,a 元素的 href 属性设置为 #top,它将跳转到具有相应ID的元素,即页面顶部的 div。当用户点击返回顶部的链接时,页面将滚动到带有相应id的顶部元素。
二. 使用JavaScript按钮
这种方式使用JavaScript来创建一个返回顶部的按钮,点击按钮时触发滚动操作。通过添加以下代码实现。
HTML:
<button id="scrollTopBtn">返回顶部</button>
<!-- ... -->
<div style="height: 1000px;"></div>
JavaScript:
document.getElementById("scrollTopBtn").addEventListener("click", function() {
window.scrollTo({ top: 0, behavior: "smooth" });
});
在这里,按钮被点击时,使用 window.scrollTo() 函数将页面滚动到顶部位置,behavior: "smooth" 参数使滚动具有平滑的动画效果。
三. 使用CSS样式和定位进行设置
全代码打造简洁美观回到顶部按钮,同上,将代码复制进HTML文件中,打开即可看到效果.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>doc</title>
<style>
#back_top{
display:block;
width:60px;
height:60px;
position:fixed;
bottom:50px;
right:40px;
border-radius:10px 10px 10px 10px;
text-decoration:none;
display:none;
background-color:#999999;
}
#back_top span{
display:block;
width:60px;
color:#dddddd;
font-size:40px;
text-align:center;
margin-top:4px;
}
#back_top span:hover{
color:#cccccc;
}
</style>
</head>
<body>
<div id="article"></div>
<a id="back_top" href="script:;">
<span>⌆</span>
</a>
</div>
<script>
$(function(){
for(var i =0 ;i <100;i++){
$("#article").append("<p>xxxxxxxxxx<br></p>")
}
})
</script>
<script>
$(function(){
$(window).scroll(function(){ //只要窗口滚动,就触发下面代码
var scrollt = document.documentElement.scrollTop + document.body.scrollTop; //获取滚动后的高度
if( scrollt >200 ){ //判断滚动后高度超过200px,就显示
$("#back_top").fadeIn(400); //淡出
}else{
$("#back_top").stop().fadeOut(400); //如果返回或者没有超过,就淡入.必须加上stop()停止之前动画,否则会出现闪动
}
});
$("#back_top").click(function(){ //当点击标签的时候,使用animate在200毫秒的时间内,滚到顶部
$("html,body").animate({scrollTop:"0px"},200);
});
});
</script>
</body>
</html>
四. 引用外部jQuery
新建HTML页面,将下面代码复制保存,通过浏览器打开,即可看到效果.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>doc</title>
<style>
.arrow{
border: 9px solid transparent;
border-bottom-color: #3DA0DB;
width: 0px;
height: 0px;
top:0px
}
.stick{
width: 8px;
height: 14px;
border-radius: 1px;
background-color: #3DA0DB;
top:15px;
}
#back_top div{
position: absolute;
margin: auto;
right: 0px;
left: 0px;
}
#back_top{
background-color: #dddddd;
height: 38px;
width: 38px;
border-radius: 3px;
display: block;
cursor: pointer;
position: fixed;
right: 50px;
bottom: 100px;
display: none;
}
</style>
</head>
<body>
<div id="article"></div>
<div id="back_top">
<div class="arrow"></div>
<div class="stick"></div>
</div>
<script src="http://cdn.staticfile.org/jquery/1.11.1-rc2/jquery.min.js"></script>
<script>
$(function(){
for(var i =0 ;i <100;i++){
$("#article").append("<p>xxxxxxxxxx<br></p>")
}
})
</script>
<script>
$(function(){
$(window).scroll(function(){ //只要窗口滚动,就触发下面代码
var scrollt = document.documentElement.scrollTop + document.body.scrollTop; //获取滚动后的高度
if( scrollt >200 ){ //判断滚动后高度超过200px,就显示
$("#back_top").fadeIn(400); //淡入
}else{
$("#back_top").stop().fadeOut(400); //如果返回或者没有超过,就淡出.必须加上stop()停止之前动画,否则会出现闪动
}
});
$("#back_top").click(function(){ //当点击标签的时候,使用animate在200毫秒的时间内,滚到顶部
$("html,body").animate({scrollTop:"0px"},200);
});
});
</script>
</body>
</html>
以上是几种常见的实现返回顶部功能的方法。可以根据项目需求和个人喜好选择其中一种或结合使用。
更新:2023-08-08
评论区