原生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 相关文章推荐
重定向实现代码
Nov 20 Javascript
js操作select控件的几种方法
Jun 02 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
Dec 28 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
node.js中的fs.chmodSync方法使用说明
Dec 18 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
Oct 20 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
Sep 25 Javascript
JavaScript函数apply()和call()用法与异同分析
Aug 10 Javascript
Element UI 自定义正则表达式验证方法
Sep 04 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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基础知识:函数基础知识
2006/12/13 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
ExtJs中gridpanel分组后组名排序实例代码
2013/12/02 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
javascript常用方法汇总
2014/12/02 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
Vue内部渲染视图的方法
2019/09/02 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python内置模块turtle绘图详解
2017/12/09 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
python安装scipy的步骤解析
2019/09/28 Python
基于python监控程序是否关闭
2020/01/14 Python
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
Alba Moda瑞士网上商店:独家意大利时尚女装销售
2016/11/28 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
奥巴马胜选演讲稿
2014/05/15 职场文书
聘用意向书
2014/07/29 职场文书
军训新闻稿范文
2015/07/17 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS