• 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 吸顶导航,告别“回到顶部”

  • 相关阅读:
    并查集(Java实现)
    Flask入门HelloWorld
    归并排序及优化(Java实现)
    用IDEA生成javadoc文档
    windows下安装Virtualenvwrapper
    模板方法模式Template Method(Java实现)
    部署Flask项目到腾讯云服务器CentOS7
    冒泡排序及优化(Java实现)
    迭代器模式Iterator(Java实现)
    堆排序(Java数组实现)
  • 原文地址:https://www.cnblogs.com/liuyk-code/p/6672593.html
Copyright © 2020-2023  润新知