原生js实现吸顶效果


Posted in Javascript onMarch 13, 2017

实现思路如下:

1. div初始居普通文档流中

2. 给window添加scroll事件(可事件节流),获取div的offset的top值,滚动时scrollTop值和top比较,当到达top时给div添加一个fixed的class使其固定

3. 向上滚动时当到达div初始top时则删除fixed的class,此时div又回到普通文档流中

4. fixed样式非IE6浏览器使用position:fixed,IE6使用position:absolute和IE expression

效果图:

原生js实现吸顶效果

代码如下:

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>无标题文档</title>
 <style>
  * {
   margin: 0;
   padding: 0;
  }
  #div1 {
   width: 100%;
   height: 50px;
   background: skyblue;
  }
 </style>
 <script>
  window.onload = function() {
   var oDiv = document.getElementById('div1');
   var divT = oDiv.offsetTop;
   //console.log(divT);
   window.onscroll = function() {
    // 获取当前页面的滚动条纵坐标位置 (依次为火狐谷歌、safari、IE678)
    var scrollT = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
    if (scrollT >= divT) {
     if (window.navigator.userAgent.indexOf('MSIE 6.0') != -1) {
      // 兼容IE6代码
      oDiv.style.position = 'absolute';
      oDiv.style.top = scrollT + 'px';
      oDiv.style.left = 0 + 'px';
     } else { 
      // 正常浏览器代码
      oDiv.style.position = 'fixed';
      oDiv.style.top = 0;
      oDiv.style.left = 0;
     }
    } else
     oDiv.style.position = '';
   }
  }
 </script>
</head>
<body>
 <div class="all">
  以上<br>
  以上<br>
  以上<br>
  以上<br>
  以上<br>
  以上<br>
  以上<br>
  <div id="div1"></div>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
  啦啦啦啦啦<br>
 </div>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
List Installed Software Features
Jun 11 Javascript
JS代码放在head和body中的区别分析
Dec 01 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
关于JS管理作用域的问题
Apr 10 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
May 11 Javascript
关于JS中二维数组的声明方法
Sep 24 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
JS冒泡事件与事件捕获实例详解
Nov 25 Javascript
微信小程序 选项卡的简单实例
May 24 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 #Javascript
jquery.flot.js简单绘制折线图用法示例
Mar 13 #Javascript
深入理解Node.js中的进程管理
Mar 13 #Javascript
jQuery简易时光轴实现方法示例
Mar 13 #Javascript
JavaScript评论点赞功能的实现方法
Mar 13 #Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
Mar 13 #Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 #Javascript
You might like
基于PHP CURL用法的深入分析
2013/06/09 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
PHP文件操作实例总结
2016/09/27 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
php array_map()函数实例用法
2021/03/03 PHP
jqPlot 基于jquery的画图插件
2011/04/26 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
python使用PyFetion来发送短信的例子
2014/04/22 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
python修改字典键(key)的方法
2019/08/05 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python 在局部变量域中执行代码
2020/08/07 Python
2019年.net常见面试问题
2012/02/12 面试题
幼师自荐信范文
2013/10/06 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
大学生表扬信范文
2014/01/09 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
监督检查工作方案
2014/05/28 职场文书
安全生产月标语
2014/10/07 职场文书
社区活动总结
2015/02/04 职场文书
婚宴父母致辞
2015/07/27 职场文书
2016公司新年问候语
2015/11/11 职场文书