JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件


Posted in Javascript onOctober 10, 2016

现在网上的回到顶部组件,懂不懂就一大段让人看不懂javascript代码,还各种不兼容。起始这个组件,完全可以自己利用javascript的滚动事件window.onscroll与position:fixed手写。IE6的兼容性问题主要出现在position:fixed上面,如何解决已经在《【CSS】IE6中的position:fixed问题与随滚动条滚动的效果》(点击打开链接)介绍过了。

下面具体说说如何利用JavaScript中的滚动事件window.onscroll实现这个回到顶部组件。具体效果如下:

IE6:

JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件

IE8:

JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件

FireFox:

JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件

首先是HTML+CSS的布局,在页面的最顶部布置一个id与name皆为page_top的<a></a>作为锚点,之所以要共同设置id与name一切为了兼容。

然后就是在右下角放一个position:fixed的,内容为↑的div,当然你想搞得炫一点可以弄成一张图片,甚至搞成♂也可以,这个div一开始是隐藏的。

最后是一大堆没有意义的、占位置的<p>,没什么好说的。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <title>回到顶部</title>
 <style type="text/css">
 #top_div{
 position:fixed;
 bottom:0px;
 right:0px;
 display:none;
 /*兼容IE6的position:fixed*/
 _position: absolute;     
 _top: expression(eval( 
 document.documentElement.scrollTop + document.documentElement.clientHeight-this.offsetHeight- 
 (parseInt(this.currentStyle.marginTop,10)||0)- 
 (parseInt(this.currentStyle.marginBottom,10)||0))); 
 _margin-bottom:0px;
 _margin_right:0px;
 }
 </style>
 </head>
 <body>
 <a id="page_top" name="page_top"></a><!--回到顶部的锚点-->
 <div id="top_div"><a href="#page_top" style="text-decoration:none">↑</a></div>
 <p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p>
 <p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p>
 <p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p>
 <p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p>
 <p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p><p>占位置的内容</p>
 </body>
</html>

之后的脚本部分,一切很明朗了:

<script type="text/javascript">
 window.onscroll = function(){
  var t = document.documentElement.scrollTop || document.body.scrollTop;
  var top_div = document.getElementById("top_div");
  if (t >= 300) {
   top_div.style.display = "inline";
  }
  else {
   top_div.style.display = "none";
  }
 }
</script>

仅有一个滚动事件window.onscroll,就是用户滚动滚动条就会触发这个时事件,var t = document.documentElement.scrollTop || document.body.scrollTop;能够兼容绝大部分浏览器,下面的t>=300是滚动条下滚300px之后,让top_div显示,这里用inline是以免block,会影响其它样式。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
JavaScript日历实现代码
Sep 12 Javascript
关于JavaScript的面向对象和继承有利新手学习
Jan 11 Javascript
获取3个数组不重复的值的具体实现
Dec 30 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
Dec 03 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
Nov 09 Javascript
微信小程序侧边栏滑动特效(左右滑动)
Jan 23 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 Javascript
centos 上快速搭建ghost博客方法分享
May 23 Javascript
原生JS封装_new函数实现new关键字的功能
Aug 12 Javascript
vue与原生app的对接交互的方法(混合开发)
Nov 28 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
Sep 06 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
Oct 10 #Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 #Javascript
jQuery继承extend用法详解
Oct 10 #Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 #Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 #Javascript
You might like
PHP伪静态页面函数附使用方法
2008/06/20 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
python引用DLL文件的方法
2015/05/11 Python
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
十佳班主任事迹材料
2014/01/18 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书