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 相关控件的事件操作分解
Aug 03 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
Jun 15 Javascript
jquery.qrcode在线生成二维码使用示例
Aug 21 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
JavaScript常见JSON操作实例分析
Aug 08 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
Feb 20 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
Layui tree 下拉菜单树的实例代码
Sep 21 Javascript
Javascript原生ajax请求代码实例
Feb 20 Javascript
ant design charts 获取后端接口数据展示
May 25 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开发框架myqee新手快速入门教程
2014/07/14 PHP
Yii框架实现记录日志到自定义文件的方法
2017/05/23 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python分析学校四六级过关情况
2017/11/22 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Python如何使用paramiko模块连接linux
2020/03/18 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
python 使用三引号时容易犯的小错误
2020/10/21 Python
土木工程应届生自荐信
2013/09/24 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
推广普通话标语
2014/06/27 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
电力培训学习心得体会
2016/01/11 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书