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入门第一课 jQuery选择符
Mar 14 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
javascript 实现map集合
Apr 03 Javascript
iframe中子父类窗口调用JS的方法及注意事项
Aug 25 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
vue中使用refs定位dom出现undefined的解决方法
Dec 21 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
用vue 实现手机触屏滑动功能
May 28 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
如何去掉文章里的 html 语法
2006/10/09 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
php的PDO事务处理机制实例分析
2017/02/16 PHP
学习YUI.Ext第七日-View&amp;JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
js实现简单计算器
2015/11/22 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
JS处理一些简单计算题
2018/02/24 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
javascript异步编程的六种方式总结
2019/05/17 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python字典对象实现原理详解
2019/07/01 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Django中Middleware中的函数详解
2019/07/18 Python
Django的Modelforms用法简介
2019/07/27 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
结构和类有什么异同
2012/07/16 面试题
性能测试工程师的面试题
2015/02/20 面试题
资深生产主管自我评价
2013/09/22 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
2014年纠风工作总结
2014/12/08 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis