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 相关文章推荐
Javascript 复制数组实现代码
Nov 26 Javascript
TBCompressor js代码压缩
Jan 05 Javascript
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
Apr 08 Javascript
如何提升vue.js中大型数据的性能
Jun 21 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
基础的WordPress插件制作教程
2015/11/24 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
Javascript类库的顶层对象名用户体验分析
2010/10/24 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
JS插件plupload.js实现多图上传并显示进度条
2016/11/29 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
讲解python参数和作用域的使用
2013/11/01 Python
wxpython学习笔记(推荐查看)
2014/06/09 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
python查看数据类型的方法
2019/10/12 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
详解Scrapy Redis入门实战
2020/11/18 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
简约控的天堂:The Undone
2016/12/21 全球购物
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
班级课外活动总结
2014/07/09 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
2015年度学校应急管理工作总结
2015/10/22 职场文书
python 进阶学习之python装饰器小结
2021/09/04 Python