如何实现回到顶部按钮 Scroll Back To Top
学习如何使用JavaScript创建“回到顶部”按钮。
回到顶部
回到顶部按钮,常用与PC站点中。
例如用户查看完长篇文章,可以点击快速回到顶部,继续浏览其他的内容。
提供回到顶部按钮的功能,是一种很好的用户体验。
创建一个回到顶部的按钮
步骤1,增加HTML:
创建一个按钮,展示箭头图标︽,当用户点击时能够滚动回页面顶部
<button class="js-back-to-top back-to-top" title="回到头部">︽</button>
步骤2,增加CSS:
为按钮增加样式
.back-to-top {
display: none; /* 默认是隐藏的,这样在第一屏才不显示 */
position: fixed; /* 位置是固定的 */
bottom: 20px; /* 显示在页面底部 */
right: 30px; /* 显示在页面的右边 */
z-index: 99; /* 确保不被其他功能覆盖 */
border: 1px solid #5cb85c; /* 显示边框 */
outline: none; /* 不显示外框 */
background-color: #fff; /* 设置背景背景颜色 */
color: #5cb85c; /* 设置文本颜色 */
cursor: pointer; /* 鼠标移到按钮上显示手型 */
padding: 10px 15px 15px 15px; /* 增加一些内边距 */
border-radius: 10px; /* 增加圆角 */
}
.back-to-top:hover {
background-color: #5cb85c; /* 鼠标移上去时,反转颜色 */
color: #fff;
}
步骤3,增加JavaScript:
$(function() {
var $win = $(window);
var $backToTop = $('.js-back-to-top');
// 当用户滚动到离顶部100像素时,展示回到顶部按钮
$win.scroll(function() {
if ($win.scrollTop() > 100) {
$backToTop.show();
} else {
$backToTop.hide();
}
});
// 当用户点击按钮时,通过动画效果返回头部
$backToTop.click(function() {
$('html, body').animate({
scrollTop: 0
}, 200);
});
});
最终回到顶部的效果如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<style>
.back-to-top {
display: none;
/* 默认是隐藏的,这样在第一屏才不显示 */
position: fixed;
/* 位置是固定的 */
bottom: 20px;
/* 显示在页面底部 */
right: 30px;
/* 显示在页面的右边 */
z-index: 99;
/* 确保不被其他功能覆盖 */
border: 1px solid #5cb85c;
/* 显示边框 */
outline: none;
/* 不显示外框 */
background-color: #fff;
/* 设置背景背景颜色 */
color: #5cb85c;
/* 设置文本颜色 */
cursor: pointer;
/* 鼠标移到按钮上显示手型 */
padding: 10px 15px 15px 15px;
/* 增加一些内边距 */
border-radius: 10px;
/* 增加圆角 */
}
.back-to-top:hover {
background-color: #5cb85c;
/* 鼠标移上去时,反转颜色 */
color: #fff;
}
</style>
</head>
<body>
<div style="background-color:#5cb85c;color:white;padding:20px">向下滚动</div>
<div style="background-color:#f6f6f6;padding:20px 20px 1000px">
该实例演示了如何创建一个“回到顶部”按钮。请往下滚动,体验效果。
<br>
<a href="/examples/how-to-js-scroll-to-top/result.html" target="_parent">注意:如果是iOS系统,iframe bug 会导致不能滚动,请点击新窗口体验。</a>
</div>
<button class="js-back-to-top back-to-top" title="回到头部">︽</button>
<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<script>
$(function() {
var $win = $(window);
var $backToTop = $('.js-back-to-top');
// 当用户滚动到离顶部100像素时,展示回到顶部按钮
$win.scroll(function() {
if ($win.scrollTop() > 100) {
$backToTop.show();
} else {
$backToTop.hide();
}
});
// 当用户点击按钮时,通过动画效果返回头部
$backToTop.click(function() {
$('html, body').animate({
scrollTop: 0
}, 200);
});
});
</script>
</body>
</html>