javascript改变position值实现菜单滚动至顶部后固定


Posted in Javascript onJanuary 18, 2013

现在很多网站都有这样的一个效果,当页面滚动到一定高度时,菜单栏会固定在页面顶部。其实就是改变 position 的值。
html 代码

<!DOCTYPE HTML> 
<html lang="en-US"> 
<head> 
<meta charset="UTF-8"> 
<title></title> 
<link rel="stylesheet" type="text/css" href="css/base.css" media="all"/> 
<style type="text/css"> 
.wrapper{width:1000px;height:2000px;margin-left:auto;margin-right:auto;} 
.header{height:150px;} 
#nav{padding:10px;position:relative;top:0;background:black;width:1000px;} 
a{display:inline-block;margin:0 10px;*display:inline;zoom:1;color:white;} 
</style> 
</head> 
<body> 
<div class="wrapper"> 
<div class="header"></div> 
<div id="nav"> 
<a href="#">11111</a> 
<a href="#">22222</a> 
<a href="#">33333</a> 
<a href="#">44444</a> 
<a href="#">55555</a> 
</div> 
</div> 
</body> 
</html> 
<script type="text/javascript" src="menuFixed.js"></script> 
<script type="text/javascript"> 
window.onload = function(){ 
menuFixed('nav'); 
} 
</script>

menuFixed.js 代码
function menuFixed(id){ 
var obj = document.getElementById(id); 
var _getHeight = obj.offsetTop; 
window.onscroll = function(){ 
changePos(id,_getHeight); 
} 
} 
function changePos(id,height){ 
var obj = document.getElementById(id); 
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; 
if(scrollTop < height){ 
obj.style.position = 'relative'; 
}else{ 
obj.style.position = 'fixed'; 
} 
}

最后需要说明的是,该效果在 ie6 下不支持,因为 ie6 不支持 position:fixed;
PS:这是本人闲着无聊,通过自己所学的 javascript 知识,随意写的一些效果。
Javascript 相关文章推荐
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
React组件的三种写法总结
Jan 12 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
Jul 09 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
js+数组实现网页上显示时间/星期几的实用方法
Jan 18 #Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 #Javascript
js replace正则表达式应用案例讲解
Jan 17 #Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
Jan 17 #Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
Jan 17 #Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 #Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 #Javascript
You might like
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
AngularJS实现页面定时刷新
2017/03/14 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
layui使用数据表格实现购物车功能
2019/07/26 Javascript
Python中字典和JSON互转操作实例
2015/01/19 Python
你真的了解Python的random模块吗?
2017/12/12 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
用Python逐行分析文件方法
2019/01/28 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
团组织关系介绍信
2014/01/12 职场文书
趣味游戏活动方案
2014/02/07 职场文书
土木工程求职信
2014/05/29 职场文书
股东大会通知
2015/04/24 职场文书
刑事辩护词范文
2015/05/21 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS