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 相关文章推荐
JS解密入门 最终变量劫持
Jun 25 Javascript
Javascript 同时提交多个Web表单的方法
Feb 19 Javascript
基于Jquery的文字自动截取(提供源代码)
Aug 09 Javascript
javascript中Date()函数在各浏览器中的显示效果
Jun 18 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
Dec 16 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
JavaScript中的回调函数实例讲解
Jan 27 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
Feb 06 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
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
js document.write()使用介绍
2014/02/21 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
bootstrap table小案例
2016/10/21 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
Three.js实现浏览器变动时进行自适应的方法
2017/09/26 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
Vue.js实现开发购物车功能的方法详解
2019/02/22 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
python pandas时序处理相关功能详解
2019/07/03 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
python定义具名元组实例操作
2021/02/28 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
《两只鸟蛋》教学反思
2014/02/10 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
学校端午节活动总结
2015/02/11 职场文书
暂住证明怎么写
2015/06/19 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript