js实现导航固定定位

                                                                               js实现导航固定定位

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7     <title>内容滚动事件</title>
  8     <style>
  9     *{
 10         margin: 0;
 11         padding: 0;
 12         list-style: none;
 13     }
 14     html,body{
 15         width: 100%;
 16     }
 17     .header{
 18         height: 130px;
 19         background: red;
 20         font: 700 28px/130px serif;
 21         color: aqua;
 22         text-align: center;
 23     }
 24     .nav{
 25         height: 60px;
 26         width: 100%;
 27         background: green;
 28         font: 700 24px/60px serif;
 29         color: rgb(240, 240, 14);
 30         text-align: center;
 31     }
 32     ul{
 33         display: inline-block;
 34     }
 35     li{
 36         float: left;
 37         margin-left: 60px;
 38
 39     }
 40     .content1,
 41     .content2,
 42     .content3 {
 43         height: 500px;
 44         background: #DFFCB5;
 45         font: 400 60px/800px serif;
 46         color: #52524E;
 47         text-align: center;
 48     }
 49     .content2 {
 50         background: #FFE1B6;
 51     }
 52     .content3 {
 53         background: #CDE3EB;
 54     }
 55     .fixed {
 56         position: fixed;
 57         top: 0;
 58         left: 0;
 59     }
 60
 61     </style>
 62 </head>
 63 <body>
 64     <div class="header" id="header">
 65         顶部广告栏
 66     </div>
 67     <div class="nav" id="nav">
 68      <ul>
 69         <li>主页</li>
 70         <li>商城</li>
 71         <li>产品展示</li>
 72         <li>服务</li>
 73         <li>关于我们</li>
 74      </ul>
 75     </div>
 76     <div class="content1" id="con">
 77             内容1
 78         </div>
 79         <div class="content2">
 80             内容2
 81         </div>
 82         <div class="content3">
 83             内容3
 84         </div>
 85 </body>
 86 </html>
 87 <script>
 88  var header = document.getElementById(‘header‘);
 89     var nav = document.getElementById(‘nav‘);
 90     var content = document.getElementById(‘con‘);
 91
 92     // 封装一个scrollTop兼容性函数
 93     function getScrollTop() {
 94         return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
 95     }
 96
 97     // 给页面注册滚动事件
 98     window.onscroll = function() {
 99         // 判断广告栏header 与 滚动的scrollTop的值
100         // 当scrollTop > header高度的时候 让导航栏 nav 固定定位
101         var scrollTop = getScrollTop();
102         if (scrollTop >= header.offsetHeight) {
103             // 样式中有的类名这里一定不要忘了加上去,否则就会被替换掉
104             nav.className = "nav fixed";
105             // 一旦标题栏设置了固定定位之后,就脱离标准流了,下面的内容就会顶上来,
106             // 所以要手动给下面的内容添加一个margin-top,将导航栏的位置留下来
107             content.style.marginTop = nav.offsetHeight + "px";
108         } else {
109             // 当scrollTop < header高度的时候 让导航栏 nav 恢复到原来的位置
110             // nav 取消固定定位,恢复到原来的位置,所以下面内容的margin-top也要去掉
111             nav.className = "nav"; // 去掉固定定位的样式,保留之前的样式
112             content.style.marginTop = 0;
113         }
114     };
115
116
117 </script>

原文地址:https://www.cnblogs.com/mahmud/p/10124408.html

时间: 2024-11-04 09:10:55

js实现导航固定定位的相关文章

js 设置导航固定

<div id="nav"> .... </div> function Add_Data() { var top = $("#header-navbar").offset().top; var scrolla = $(window).scrollTop(); var cha = parseInt(top) - parseInt(scrolla); if (cha <= 0) { $("#header-navbar")

JQuery Mobile+JS实现智能浮动定位导航条

实现原理 其实很简单,主要用到几个知识点:JQuery Mobile+JS实现智能浮动定位导航条,布布扣,bubuko.com

jquery的固定定位效果

今天做了个固定定位的效果.比如对导航需要进行固定定位效果: 当没有滚动到导航下面,导航正常显示. 当滚动到导航下面,导航就固定到顶部. 这个效果使用了jquery的方法实现,具体思路为: 1)首先获取导航相对与文档的偏移量top(使用offset().top) 2)定义滚动事件,获取滚动元素的scrollTop,对scrollTop及top进行比较 3)若scrollTop超过了top,则对导航进行position:fixed设置,若没有超过,则对导航设置默认的position:static.

返回顶部(解决IE6固定定位)

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 3 <head> 4 &l

jQuery网页向下滚动导航固定顶部代码

<!doctype html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery网页向下滚动导航固定顶部代码</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src=&

jQuery实现的导航固定效果

网页上的头部固定,但不随滚动条滚动的效果,在百度贴吧里整理出来的网页特效,最开始的时候,固定条可以随滚动条拖动至网页顶部,但到达网页顶部后,再次拖动滚动条,头部并不滚动,其它的内容可以滚动,貌似在网上见的挺多的效果. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

HTML定位——绝对定位和相对定位、固定定位

1.绝对定位 绝对定位指的是通过规定HTML元素在水平和垂直方向上的位置来固定元素,基于绝对定位的元素不会占据空间. 绝对定位的位置声明是相对于已定位的并且包含关系最近的祖先元素.如果当前需要被定为的元素没有已定位的祖先元素作为参考值,则相对于整个网页. position:absolute: 1    <!DOCTYPE html>  2  <html lang="en"> 3 4 <head> 5 <meta charset="UT

web前端入门到实战:css绝对定位和相对定位、固定定位

1.绝对定位 position:absolute: 绝对定位指的是通过规定HTML元素在水平和垂直方向上的位置来固定元素,基于绝对定位的元素不会占据空间.绝对定位的位置声明是相对于已定位的并且包含关系最近的祖先元素.如果当前需要被定为的元素没有已定位的祖先元素作为参考值,则相对于整个网页. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &l

需求:页面content分为左右两栏,左侧固定定位,滚动显示,右侧亦可滚动查看

如题,content宽度为1200px,代码初版如下所示: <script type="text/javascript" >     function menuFixed(id){         $('#rightanswer').css('height', document.documentElement.clientHeight*0.86+'px');         $('#viewerPlaceHolder').css('height', document.doc