原生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+css实现图片滚动效果(附源码)
Mar 18 Javascript
JQuery在页面中添加和除移DOM示例代码
Jun 24 Javascript
javascript通过className来获取元素的简单示例代码
Jan 10 Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
node文件上传功能简易实现代码
Jun 16 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
Sep 27 Javascript
小程序如何获取多个formId实现详解
Sep 20 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
js实现查询商品案例
Jul 22 Javascript
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
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实现图片压缩的两则实例
2014/07/19 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
javascript的document.referrer浏览器支持、失效情况总结
2014/07/18 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
浅谈Python中的私有变量
2018/02/28 Python
selenium+python环境配置教程详解
2019/05/28 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
印度和世界各地的精美产品:Ikka Dukka
2018/02/12 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
房屋改造计划书
2014/01/10 职场文书
机关单位动员会主持词
2014/03/20 职场文书
健康家庭事迹材料
2014/05/02 职场文书
班级读书活动总结
2014/06/30 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
投诉信格式范文
2015/07/02 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
新入职员工工作总结
2015/10/15 职场文书
《抽屉原理》教学反思
2016/02/20 职场文书
导游词之昭君岛
2020/01/17 职场文书