原生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 相关文章推荐
jquery parent和parents的区别分析
Oct 02 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
Nov 06 Javascript
JS加载iFrame出现空白问题的解决办法
May 13 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
Bootstrap学习笔记之css样式设计(1)
Jun 07 Javascript
浅谈js构造函数的方法与原型prototype
Jul 04 Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
Aug 24 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
javascript 组合按键事件监听实现代码
Feb 21 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 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网页后退不再出现过期
2007/03/08 PHP
传智播客学习之java 反射
2009/11/22 Javascript
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
javascript里使用php代码实例
2014/12/13 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
python基础教程之匿名函数lambda
2017/01/17 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
运动会获奖感言
2014/02/11 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
出纳担保书范文
2014/04/02 职场文书
爱耳日活动总结
2014/04/30 职场文书
国贸专业求职信
2014/06/28 职场文书
学习十八大的心得体会
2014/09/12 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
基于Python实现股票收益率分析
2022/04/02 Python