当页面过长时,通常会在页面下方有一个返回顶部的button,总结一下,大概三种实现方法,下面说下各方法及优缺点。

方法一 锚点定位
<a href="#" class="top" id="top">返回頂部</a>
这种方法设置方便,但缺点是会刷新页面(我是在同事的乐视手机上发现的)。
方法二 window.scrollTo(x,y)
<a href="javascript:scrollTo(0,0)" class="top" id="top">返回頂部</a>
这种方法也很方便,并且不会刷新页面,缺点是没有滚动效果。
scrollTo接收的参数用来定位视口左上角在整个滚动内容区域的坐标,比如我设置scrollTo(100,100),就是让滚动内容的坐标(100,100)的点处在视口的左上角。
方法三 设置带有动画效果的滚动
原生方法
/* html部分 */
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<a href="javascript:;" class="top" id="top">返回頂部</a>
</body>
<style>
/* css部分 */
div {
height: 150px;
}
div:nth-child(odd) {
background-color: #8ae238;
}
div:nth-child(even) {
background-color: #66d9ef;
}
.top {
position: fixed;
right: 50px;
bottom: 50px;
display: block;
width: 50px;
height: 50px;
font-size: 20px;
background-color: white;
display: none;
}
</style>
<script>
/* js代码 */
var topBtn = document.getElementById('top');
// 获取视窗高度
var winHeight = document.documentElement.clientHeight;
window.onscroll = function () {
// 获取页面向上滚动距离,chrome浏览器识别document.body.scrollTop,而火狐识别document.documentElement.scrollTop,这里做了兼容处理
var toTop = document.documentElement.scrollTop || document.body.scrollTop;
// 如果滚动超过一屏,返回顶部按钮出现,反之隐藏
if(toTop>=winHeight){
topBtn.style.display = 'block';
}else {
topBtn.style.display = 'none';
}
}
topBtn.onclick=function () {
var timer = setInterval(function () {
var toTop = document.documentElement.scrollTop || document.body.scrollTop;
// 判断是否到达顶部,到达顶部停止滚动,没到达顶部继续滚动
if(toTop == 0){
clearInterval(timer);
}else {
// 设置滚动速度
var speed = Math.ceil(toTop/5);
// 页面向上滚动
document.documentElement.scrollTop=document.body.scrollTop=toTop-speed;
}
},50);
}
</script>
大概的思路就是:
为window绑定scroll事件,监听页面滚动距离,当超过一屏高度时,显示返回顶部的按钮
为按钮绑定点击事件,返回顶部的方法就是获取页面滚动的距离,然后计算步长,这里采用滚动距离除以5的方式,滚动速度由快到慢。这里使用定时器控制滚动的频率,建议设置较小一点的值,如果时间间隔过大会有‘跳帧'的感觉。
这种方法优点是有了动画效果,只是实现起来比较麻烦,下面介绍一下jQuery方法。
jQuery方法
jQuery方法只是在js代码部分不同,具体代码如下
<script>
/* js代码 */
$(window).on('scroll', function () {
// 判断显示还是隐藏按钮
if($(this).scrollTop()>=$(this).height()){
$('#top').fadeIn('slow');
}else {
$('#top').fadeOut('slow');
}
});
$('#top').on('click',function () {
// 设置滚动动画,这里注意使用的是$('body')不是$(window)
$('body').animate({scrollTop:'0'},500);
});
</script>
jQuery方法的优点是方便,而且动画效果比较流畅。
这里需要注意设置animate方法时使用的是jQuery封装的body对象而不是window对象,因为我们是要设置body的scrollTop属性。
总结
三个方法各有优劣,不过总体来讲,jQuery的方法更适合大多数场景。
以上所述是小编给大家介绍的jQuery中页面返回顶部的方法总结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# jquery
# 页面返回顶部
# js+JQuery返回顶部功能如何实现
# 用jQuery实现的智能隐藏、滑动效果的返回顶部代码
# 基于jquery的返回顶部效果(兼容IE6)
# JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
# 仿新浪微博返回顶部的jquery实现代码
# jquery小火箭返回顶部代码分享
# jQuery实现返回顶部功能适合不支持js的浏览器
# jquery左边浮动到一定位置时显示返回顶部按钮
# 使用jQuery实现返回顶部
# jQuery实现小火箭返回顶部特效
# 的是
# 这种方法
# 绑定
# 小编
# 是在
# 会有
# 在此
# 会在
# 也很
# 给大家
# 三种
# 火狐
# 各有
# 较小
# 过大
# 介绍一下
# 快到
# 机上
# 所述
# 需要注意
相关文章:
如何通过商城免费建站系统源码自定义网站主题?
建站之星导航菜单设置与功能模块配置全攻略
小型网站制作HTML,*游戏网站怎么搭建?
如何通过可视化优化提升建站效果?
建站之星好吗?新手能否轻松上手建站?
建站之星微信建站一键生成小程序+多端营销系统
完全自定义免费建站平台:主题模板在线生成一站式服务
已有域名建站全流程解析:网站搭建步骤与建站工具选择
如何在服务器上配置二级域名建站?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
如何选择可靠的免备案建站服务器?
如何高效搭建专业期货交易平台网站?
如何制作网站标识牌,动态网站如何制作(教程)?
如何用IIS7快速搭建并优化网站站点?
深圳网站制作案例,网页的相关名词有哪些?
上海网站制作开发公司,上海买房比较好的网站有哪些?
动图在线制作网站有哪些,滑动动图图集怎么做?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
高端企业智能建站程序:SEO优化与响应式模板定制开发
高端网站建设与定制开发一站式解决方案 中企动力
如何选择香港主机高效搭建外贸独立站?
如何在IIS7中新建站点?详细步骤解析
音乐网站服务器如何优化API响应速度?
制作电商网页,电商供应链怎么做?
如何获取PHP WAP自助建站系统源码?
如何选择适合PHP云建站的开源框架?
SQL查询语句优化的实用方法总结
建站之星代理如何获取技术支持?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
制作旅游网站html,怎样注册旅游网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
北京网站制作公司哪家好一点,北京租房网站有哪些?
建站为何优先选择香港服务器?
宝塔建站助手安装配置与建站模板使用全流程解析
Android自定义listview布局实现上拉加载下拉刷新功能
如何获取开源自助建站系统免费下载链接?
广州建站公司哪家好?十大优质服务商推荐
广州美橙建站如何快速搭建多端合一网站?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
如何快速启动建站代理加盟业务?
长沙做网站要多少钱,长沙国安网络怎么样?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
如何通过远程VPS快速搭建个人网站?
,在苏州找工作,上哪个网站比较好?
网站制作公司,橙子建站是合法的吗?
香港服务器WordPress建站指南:SEO优化与高效部署策略
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何快速登录WAP自助建站平台?
南平网站制作公司,2025年南平市事业单位报名时间?
*请认真填写需求信息,我们会在24小时内与您取得联系。