關於JavaScript如何實現導航列吸頂操作的實例分享
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <style type="text/css"> body { padding:0; margin:0; } #nav { width:100%; height:60px; background:#39f; color:#fff; line-height:60px; text-align:center; padding:0; margin:0; list-style:none; } #nav li { float:left; width:20%; height:60px; } .fix { position:fixed; top:0; left:0; } </style> </head> <div class="wrap"> <h1>在线书城</h1> <p>有没有一本书让你仿佛遇到春风十里</p> <ul id="nav"> <li>加入购物车</li> <li>加入收藏</li> <li>立即购买</li> </ul> <div class="con"> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> <p>好书有好事有好诗</p> </div> </div> <script type="text/javascript"> var tit = document.getElementById("nav"); //alert(tit); //占位符的位置 var rect = tit.getBoundingClientRect();//获得页面中导航条相对于浏览器视窗的位置 var inser = document.createElement("div"); tit.parentNode.replaceChild(inser,tit); inser.appendChild(tit); inser.style.height = rect.height + "px"; //获取距离页面顶端的距离 var titleTop = tit.offsetTop; //滚动事件 document.onscroll = function(){ //获取当前滚动的距离 var btop = document.body.scrollTop||document.documentElement.scrollTop; //如果滚动距离大于导航条据顶部的距离 if(btop>titleTop){ //为导航条设置fix tit.className = "clearfix fix"; }else{ //移除fixed tit.className = "clearfix"; } } </script> </html>
當頁面向下滾動時超過了吸頂導航的初始位置時,需要把吸頂導航列固定在視窗頂部,一般吸頂導航列也可以替換成文章標題欄,搜尋框、tab條等等,例如百度糯米,天貓,淘寶最常用。 它們共同點是在內容或功能上比較重要,但又不是最重要的元素,最重要的一般會放置在頂部。
1.實作想法是監聽 scroll 事件,判斷目前頁面的捲動位置,當捲動距離大於導航條距頂部的距離時,為導航條採用視窗定位。
2.與「回到頂部「的實作方法一樣,但是會發現實現吸頂功能時,到了臨界位置時,頁面會抖動一下,因為當導航條fixed出去,下部內容填補了導航條離開的位置。搶佔了導航條的位置,所以抖動了一下。 此處我們設定一個佔位符,守住導航條的位置。
效果如下:
以上是關於JavaScript如何實現導覽列吸頂操作的實例分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!