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改变position值实现菜单滚动至顶部后固定
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@