侧栏跟随滚动的简单实现代码


Posted in Javascript onMarch 18, 2013

浏览网站时经常看到有的网站上,侧栏里的有些内容滚动到页面顶端以后就固定在那个位置,不再跟随滚动条而滚动。这种效果叫做“侧栏跟随滚动”。它对于那些不希望被滚动到页面之外的内容是非常有用的。
侧栏跟随滚动的实现方法有很多种,比较常见的有两种,这两种方法在NEOEASE写的一篇文章中介绍的很清楚,一种是借助jQuery来实现,这种方法对于那些平时不需要加载jQuery库的网站来说,显然是一种负担(jQuery现在是越做越大了……)。另外一种方法是通过原生javascript编写的效果,这种方法相比上一种,要轻盈得多。但是,我还是不够满足,原生的javascript写的文件也有4K多,对于我这种至简至上的人来说,还是太繁杂了。那么有没有更简单的实现办法呢?

答案当然是肯定的。下面具体介绍。
先说html文件(当然也可是动态文件,里面总归有html代码的)

<div id="box"> 
<div id="float" class="div1"> 
在这里加入需要跟随滚动的内容 
</div> 
</div>

然后是CSS代码
#box{float:left; position:relative;width:250px;} 
.div1{width:250px;} 
.div2{position:fixed;_position:absolute;top:0;z-index:250;}

最后是JS代码(可以放在需要滚动的页面中,也可以放在单独的JS文件中再调用)
(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";} 
}; 
} 
})();

OK,大功告成,够简单吧。
最后给个 示例。
Javascript 相关文章推荐
jQuery操作select的实例代码
Jun 14 Javascript
jquery validate poshytip 自定义样式
Nov 26 Javascript
JS实现随机化快速排序的实例代码
Aug 01 Javascript
js string 转 int 注意的问题小结
Aug 15 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
Sep 03 Javascript
JavaScript类的写法
Sep 17 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
Dec 25 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
Feb 28 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
May 10 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
Sep 28 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
JS特权方法定义作用以及与公有方法的区别
Mar 18 #Javascript
Javascript判断对象是否相等实现代码
Mar 18 #Javascript
jQuery+css实现图片滚动效果(附源码)
Mar 18 #Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
Mar 18 #Javascript
javascript定时变换图片实例代码
Mar 17 #Javascript
JS前端框架关于重构的失败经验分享
Mar 17 #Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 #Javascript
You might like
php allow_url_include的应用和解释
2010/04/22 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
2017/01/04 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
Jquery的Ajax技术使用方法
2019/01/21 jQuery
webpack4.x下babel的安装、配置及使用详解
2019/03/07 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python logging重复记录日志问题的解决方法
2018/07/12 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
毕业生的自我鉴定
2013/10/29 职场文书
煤矿班组长的职责
2013/12/25 职场文书
高二政治教学反思
2014/02/01 职场文书
教师求职信
2014/06/17 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
物业管理交接协议书
2016/03/24 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记