JS实现部分HTML固定页面顶部随屏滚动效果


Posted in Javascript onDecember 24, 2015

本文实例讲述了JS实现部分HTML固定页面顶部随屏滚动效果。分享给大家供大家参考,具体如下:

我们经常在淘宝网看到这样的特效,商品列表特别长,而商品列名称始终保持在最顶端。如果你把滚动条滚动至最上边了,那么它会自动判断是否到顶端了,然后一直置顶从而不怕遮挡。

这种特效是通过JavaScript和CSS实现的,在实际开发中有不少用途,下面是我找到的一个使用JavaScript制作的仿淘宝智能浮动的源代码,兼容性不错,在IE、Firefox、Chrome下都能正常工作。

使用这个特效代码需要注意,如果在侧边栏使用,则需要注意,侧栏中的栏目不能使用JavaScript动态加载,必须用静态的格式,否则在JavaScript会错误的计算页面高度,上下滚动的时候会出现错位现象。

JavaScript代码:

(function(){
  var oDiv=document.getElementById("float");
  var H=0,iE6;
  var Y=oDiv;
  while(Y){H+=Y.offsetTop;Y=Y.offsetParent};
  iE6=window.ActiveXObject&&!window.XMLHttpRequest;
  if(!iE6){
    window.onscroll=function() 
    {
      var s=document.body.scrollTop||document.documentElement.scrollTop;
      if(s>H){oDiv.className="div1 div2";if(iE6){oDiv.style.top=(s-H)+"px";}}
      else{oDiv.className="div1";}
    };
  }
})();

HTML代码:

<div id="box">
  <div id="float" class="div1">
    //随滚动移动的部分代码
  </div>
</div>

CSS代码:

#box{float:left;position:relative;width:295px;}
.div1{}
.div2{position:fixed;_position:absolute;top:3px;z-index:295;}

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
Mar 04 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
jQuery侧边栏实现代码
May 06 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 Javascript
原生JS实现垂直手风琴效果
Feb 19 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
jQuery轮播图实例详解
Aug 15 jQuery
LayerClose弹窗关闭刷新方法
Aug 17 Javascript
详解Node.js异步处理的各种写法
Jun 09 Javascript
vue设置动态请求地址的例子
Nov 01 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 #Javascript
基于JS2Image实现圣诞树代码
Dec 24 #Javascript
jquery读写cookie操作实例分析
Dec 24 #Javascript
jquery.cookie实现的客户端购物车操作实例
Dec 24 #Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 #Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 #Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
Dec 24 #Javascript
You might like
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
node.js实现端口转发
2016/04/14 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Django中使用group_by的方法
2015/05/26 Python
Python过滤列表用法实例分析
2016/04/29 Python
Pandas中resample方法详解
2019/07/02 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
叙述DBMS对数据控制功能有哪些
2016/06/12 面试题
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
校园安全教育广播稿
2014/02/17 职场文书
户外活动策划方案
2014/03/12 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
采购部年度工作总结
2015/08/13 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
mysql脏页是什么
2021/07/26 MySQL
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js
Java Spring读取和存储详细操作
2022/08/05 Java/Android