网页中返回顶部代码(多种方法)另附注释说明


Posted in Javascript onApril 24, 2013

网页中返回顶部代码(多种方法)另附注释说明
下面就说下简单的返回顶部效果的代码实现,附注释说明。
1. 最简单的静态返回顶部,点击直接跳转页面顶部,常见于固定放置在页面底部返回顶部功能
方法一:用命名锚点击返回到顶部预设的id为top的元素

<a href="#top" target="_self">返回顶部</a>

方法二:操作scrooll函数用来控制滚动条的位置(第一个参数是水平位置,第二个参数是垂直位置)
<a href="javascript:scroll(0,0)">返回顶部</a>

缺点:返回效果是立即的,不符合一般浏览页面的滚动感觉;
静态固定于页面底部,用户不一定看得到。

2. 简单的静态返回顶部,用js模拟滚动效果上滑至顶部

function pageScroll(){ 
//把内容滚动指定的像素数(第一个参数是向右滚动的像素数,第二个参数是向下滚动的像素数) 
window.scrollBy(0,-100); 
//延时递归调用,模拟滚动向上效果 
scrolldelay = setTimeout('pageScroll()',100); 
//获取scrollTop值,声明了DTD的标准网页取document.documentElement.scrollTop,否则取document.body.scrollTop;因为二者只有一个会生效,另一个就恒为0,所以取和值可以得到网页的真正的scrollTop值 
var sTop=document.documentElement.scrollTop+document.body.scrollTop; 
//判断当页面到达顶部,取消延时代码(否则页面滚动到顶部会无法再向下正常浏览页面) 
if(sTop==0) clearTimeout(scrolldelay); 
}

<a onclick="pageScroll()">返回顶部</a>

缺点:滚动效果不平滑,且在页面很长时点击返回顶部,未向上到达页面顶部无法再正常浏览页面;
同上依旧是静态固定于页面底部,不一定能曝光在用户面前。

3. 动态按需加载返回顶部,css侧边屏幕绝对定位,结合简单jQuery动画实现更好体验

function gotoTop(min_height){ 
//预定义返回顶部的html代码,它的css样式默认为不显示 
var gotoTop_html = '<div id="gotoTop">返回顶部</div>'; 
//将返回顶部的html代码插入页面上id为page的元素的末尾 
$("#page").append(gotoTop_html); 
$("#gotoTop").click(//定义返回顶部点击向上滚动的动画 
function(){$('html,body').animate({scrollTop:0},700); 
}).hover(//为返回顶部增加鼠标进入的反馈效果,用添加删除css类实现 
function(){$(this).addClass("hover");}, 
function(){$(this).removeClass("hover"); 
}); 
//获取页面的最小高度,无传入值则默认为600像素 
min_height ? min_height = min_height : min_height = 600; 
//为窗口的scroll事件绑定处理函数 
$(window).scroll(function(){ 
//获取窗口的滚动条的垂直位置 
var s = $(window).scrollTop(); 
//当窗口的滚动条的垂直位置大于页面的最小高度时,让返回顶部元素渐现,否则渐隐 
if( s > min_height){ 
$("#gotoTop").fadeIn(100); 
}else{ 
$("#gotoTop").fadeOut(200); 
}; 
}); 
}; 
gotoTop();

css样式代码:
/*默认样式,主要是position:fixed实现屏幕绝对定位*/ 
#gotoTop{display:none;position:fixed;top:75%;left:50%;cursor:pointer;margin-top:-50px;margin-left:520px;padding:9px 4px;width:20px;text-align:center;border:1px solid #e0e0e0;background:#fff;} 
/*用CSS表达式(expression)来实现ie6下position:fixed效果*/ 
#gotoTop{_position:absolute;_top:expression(documentElement.scrollTop + documentElement.clientHeight * 3/4 + "px")} 
/*鼠标进入的反馈效果*/ 
#gotoTop.hover{background:#5CB542;color:#fff;text-decoration:none;}

这种方法判断页面高度按需将“返回顶部”展示给用户,用css样式实现了屏幕绝对定位,借助jQuery实现了更好用平滑的滚动效果。进一步考虑如果用户设置了浏览器禁用js,那么我们可以将第三方案结合第一方案方法一,禁用js后第三方案将不被用户所见,未禁用的话我们在js代码中再加上一句隐藏第一方案。

总之,长页面还是要尽量避免的,不可避免的情况下,加上“返回顶部”功能可能会带给用户相对好一点的体验。

Javascript 相关文章推荐
分析Node.js connect ECONNREFUSED错误
Apr 09 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
jQuery的deferred对象详解
Nov 12 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
Angular CLI 使用教程指南参考小结
Apr 10 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
Jun 15 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
Apr 24 #Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
Apr 24 #Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 #Javascript
基于jQuery实现图片的前进与后退功能
Apr 24 #Javascript
查看图片(前进后退)功能实现js代码
Apr 24 #Javascript
jQuery判断密码强度实现思路及代码
Apr 24 #Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
Apr 24 #Javascript
You might like
傻瓜化配置PHP环境――Appserv
2006/12/13 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
php结合md5实现的加密解密方法
2016/01/25 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
jquery自动补齐功能插件flexselect用法示例
2016/08/06 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
微信小程序 在Chrome浏览器上运行以及WebStorm的使用
2016/09/27 Javascript
js运动事件函数详解
2016/10/21 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
python计数排序和基数排序算法实例
2014/04/25 Python
介绍Python中内置的itertools模块
2015/04/29 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
win与linux系统中python requests 安装
2016/12/04 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
python pandas 如何替换某列的一个值
2018/06/09 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
美国药妆网站:EDCskincare.com(防晒、痤疮、抗衰老等)
2017/04/28 全球购物
移风易俗倡议书
2014/04/15 职场文书
中学生操行评语大全
2014/04/24 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
查摆剖析材料范文
2014/09/30 职场文书
李白故里导游词
2015/02/12 职场文书
新员工入职感想
2015/08/07 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs