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


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 选择器使用说明介绍
Apr 18 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
Aug 02 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
JavaScript实现计数器基础方法
Oct 10 Javascript
JavaScript模拟实现自由落体效果
Aug 28 Javascript
浅谈Webpack多页应用HMR卡住问题
Apr 24 Javascript
Vue中的transition封装组件的实现方法
Aug 13 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
js实现带搜索功能的下拉框
Jan 11 Javascript
vue全屏事件开发详解
Jun 17 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
js选择器全面解析
2016/06/27 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
python的类方法和静态方法
2014/12/13 Python
浅谈python迭代器
2017/11/08 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
德语专业求职信
2014/03/12 职场文书
婚前协议书范本
2014/04/15 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
辞职信怎么写?
2019/05/21 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
Python数据分析之pandas函数详解
2021/04/21 Python
Windows7下FTP搭建图文教程
2022/08/05 Servers