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 相关文章推荐
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
js函数的延迟加载实现代码
Oct 11 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
js通过指定下标或指定元素进行删除数组的实例
Jan 12 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
解析原来浏览器原生支持JS Base64编码解码
Aug 12 Javascript
js实现开关灯效果
Mar 30 Javascript
在vue中使用vant TreeSelect分类选择组件操作
Nov 02 Javascript
原生JavaScript实现轮播图
Jan 10 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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
关于this和self的使用说明
2010/08/01 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
python计算时间差的方法
2015/05/20 Python
python正则表达式之作业计算器
2016/03/18 Python
Python中函数及默认参数的定义与调用操作实例分析
2017/07/25 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python使用tkinter实现简单计算器
2018/01/30 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Python 一句话生成字母表的方法
2019/01/02 Python
python读取几个G的csv文件方法
2019/01/07 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
法学个人求职信范文
2014/01/27 职场文书
大四学生个人总结
2015/02/15 职场文书
关于车尾的标语大全
2015/08/11 职场文书