zoukankan      html  css  js  c++  java
  • js实现导航栏的吸顶操作

      1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
      2 
      3 
      4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      5 <html>
      6 <head>
      7 <style type="text/css">
      8     body {
      9         padding:0;
     10         margin:0;
     11     }
     12     #nav {
     13         100%;
     14         height:60px;
     15         background:#39f;
     16         color:#fff;
     17         line-height:60px;
     18         text-align:center;
     19         padding:0;
     20         margin:0;
     21         list-style:none;
     22     }
     23     #nav li {
     24         float:left;
     25         20%;
     26         height:60px;
     27     }
     28     .fix {
     29         position:fixed;
     30         top:0;
     31         left:0;
     32     }
     33 </style>
     34 </head>
     35 
     36 <div class="wrap">
     37     <h1>在线书城</h1>
     38     <p>有没有一本书让你仿佛遇到春风十里</p>
     39     <ul id="nav">
     40         <li>加入购物车</li>
     41         <li>加入收藏</li>
     42         <li>立即购买</li>
     43     </ul>
     44     <div class="con">
     45         <p>好书有好事有好诗</p>
     46         <p>好书有好事有好诗</p>
     47         <p>好书有好事有好诗</p>
     48         <p>好书有好事有好诗</p>
     49         <p>好书有好事有好诗</p>
     50         <p>好书有好事有好诗</p>
     51         <p>好书有好事有好诗</p>
     52         <p>好书有好事有好诗</p>
     53         <p>好书有好事有好诗</p>
     54         <p>好书有好事有好诗</p>
     55         <p>好书有好事有好诗</p>
     56         <p>好书有好事有好诗</p>
     57         <p>好书有好事有好诗</p>
     58         <p>好书有好事有好诗</p>
     59         <p>好书有好事有好诗</p>
     60         <p>好书有好事有好诗</p>
     61         <p>好书有好事有好诗</p>
     62         <p>好书有好事有好诗</p>
     63         <p>好书有好事有好诗</p>
     64         <p>好书有好事有好诗</p>
     65         <p>好书有好事有好诗</p>
     66         <p>好书有好事有好诗</p>
     67         <p>好书有好事有好诗</p>
     68         <p>好书有好事有好诗</p>
     69         <p>好书有好事有好诗</p>
     70         <p>好书有好事有好诗</p>
     71         <p>好书有好事有好诗</p>
     72     </div>
     73 </div>
     74 
     75 <script type="text/javascript">
     76 var tit = document.getElementById("nav");
     77 //alert(tit);
     78 //占位符的位置
     79 var rect = tit.getBoundingClientRect();//获得页面中导航条相对于浏览器视窗的位置
     80 var inser = document.createElement("div");
     81 tit.parentNode.replaceChild(inser,tit);
     82 inser.appendChild(tit);
     83 inser.style.height = rect.height + "px";
     84 
     85 //获取距离页面顶端的距离
     86 var titleTop = tit.offsetTop;
     87 //滚动事件
     88 document.onscroll = function(){
     89     //获取当前滚动的距离
     90     var btop = document.body.scrollTop||document.documentElement.scrollTop;
     91     //如果滚动距离大于导航条据顶部的距离
     92     if(btop>titleTop){
     93         //为导航条设置fix
     94         tit.className = "clearfix fix";
     95     }else{
     96         //移除fixed
     97         tit.className = "clearfix";
     98     }
     99 }
    100 </script>
    101 </html>

    当页面向下滚动时超过了吸顶导航的初始位置时,需要把吸顶导航栏固定在窗口顶部,一般吸顶导航栏还可以替换成文章标题栏,搜索框、tab条等等,例如百度糯米,天猫,淘宝最为常用。它们共同点是在内容或者功能上比较重要,但又不是最重要的元素,最重要的一般会放置于顶部

    1.实现思路是监听 scroll 事件,判断当前页面的滚动位置,当滚动距离大于导航条距顶部的距离时,为导航条采用窗口定位。

    2.与“回到顶部“的实现方法一样,但是会发现实现吸顶功能时,到了临界位置时,页面会抖动一下,因为当导航条fixed出去,下部内容填补了导航条离开的位置。抢占了导航条的位置,所以抖动了一下。此处我们设置一个占位符,守住导航条的位置

    效果如下:

    JS 吸顶导航,告别“回到顶部”

  • 相关阅读:
    织梦分页条添加省略号(支持动态静态)
    织梦点击数或者其他数值过【千】过【万】过【亿】的写法
    织梦文章页每个TAG标签单独输出相关文章
    织梦验证码不显示解决方法总结
    织梦搜索结果根据搜索不同栏目显示不同搜索结果模板
    织梦正则提取中英混合字符串中第一个中文汉字
    织梦让内容摘要多行文本支持换行
    织梦dede:tag标签输入添加自增autoindex
    织梦去除底部版权power by dedecms
    织梦自定义表单添加访客提交时间和访客IP+限制每天每个IP提交表单次数
  • 原文地址:https://www.cnblogs.com/liuyk-code/p/6672593.html
Copyright © 2011-2022 走看看