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 相关文章推荐
textContent在Firefox下与innerText等效的属性
May 12 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
May 04 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
jQuery获取父元素及父节点的方法小结
Apr 14 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
Three.js中矩阵和向量的使用教程
Mar 19 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 Javascript
d3.js实现图形拖拽
Dec 19 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 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常用文件操作函数汇总
2014/11/22 PHP
php动态函数调用方法
2015/05/21 PHP
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
jquery实现进度条状态展示
2020/03/26 jQuery
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python遍历pandas数据方法总结
2018/02/09 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
python 基于opencv实现图像增强
2020/12/23 Python
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
最新党员思想汇报
2014/01/01 职场文书
亲子拓展活动方案
2014/02/20 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
小组口号大全
2014/06/09 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
建国大业观后感
2015/06/01 职场文书
学习党史心得体会2016
2016/01/23 职场文书
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技