日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JS實現網站樓層導航效果代碼實例

瀏覽:240日期:2024-05-03 16:37:38

壹 ❀ 引言

對于樓層導航而言,還有個重要的功能就是,隨著滾動條滾動,達到某層時得同步點亮樓層導航的小圖片。

由于我前面也說了不打算使用JQ,所以想著用JS去實現它,實現并不難,主要得弄清滾動滿足怎樣的條件才應該點亮對應樓層,我們先看看實現效果:

JS實現網站樓層導航效果代碼實例

貳 ❀ 實現思路

第一點,因為是由滾動觸發的樓層判斷,所以肯定離不開onscroll事件。

第二點,我們貌似要獲取每個樓層頂端距離視窗頂部的距離,隨著滾動條往下滾動,此距離會不斷縮小,當接近到某個距離時我們判定此樓層入畫,當然其它樓層都滿足此判定。

而JQ提供了一個offset().top方法能獲取這個值,js中只有一個offsetTop屬性,獲取的是距離自己最近position屬性為非static的祖先元素的距離,此距離不隨滾動條滾動而縮小。

當然我們有方法模擬計算出offset().top的值,但沒必要

這里我直接引用了我之前博客得到的結論:offset().top =offsetTop -scrollTop(offsetTop參考對象為根元素)。

為了方便理解,我們假設樓層壹頂端距離視窗頂端為0時,此時判定樓層壹入畫,即樓層導航中第一個按鈕應該被點亮。

JS實現網站樓層導航效果代碼實例

由于offset().top = offsetTop - scrollTop,此時樓層壹距離頂端已經為0,我們可以得出當樓層壹的offsetTop = scrollTop時,我們認定樓層壹入畫。

而當樓層貳入畫時,樓層貳的offsetTop也等于滾動條的距離,此時樓層壹自然會出畫:

JS實現網站樓層導航效果代碼實例

那么現在我們得到了判斷樓層入畫的條件,如果某個樓層的offsetTop屬性的值小于等于滾動條距離時(如果用等于條件過于苛刻,很難剛好滾動到這個距離點上),我們點亮對應樓層的導航logo。

為了讓效果更加自然,我們肯定不會真的讓某個樓層緊貼頂部時才判定它滿足條件,肯定是提前某個距離就判定滿足,所以真正的條件應該是offsetTop - 100(這個數字看自己感覺) <= scrollTop

你是否會有,樓層貳入畫時樓層壹依然滿足offsetTop<=scrollTop條件的疑惑?在JQ里面,我們給某個元素添加點亮class的同時,還會清除掉兄弟元素的該class。

所以在JS里面也是如此,我們利用滿足樓層的索引來控制樣式,而后者滿足條件的索引始終會覆蓋前面的索引,所以被點亮的永遠只有一個。

現在弄懂了思路,代碼就好些了,下面直接貼上了實現代碼:

叁 ❀ 實現代碼

HTML部分:

<div class='floor'> <div style='background: #ffb6b9'>壹</div> <div style='background: #fae3d9'>貳</div> <div style='background: #bbded6'>叁</div> <div style='background: #8ac6d1'>肆</div> <div style='background: #fff1ac'>伍</div></div><ul class='floorNav'> <li>壹</li> <li>貳</li> <li>叁</li> <li>肆</li> <li>伍</li></ul>

CSS部分:

* { padding: 0; margin: 0; list-style: none;}.floor>div { height: 900px; line-height: 900px; text-align: center; color: #fff; font-size: 40px;}.floorNav { width: 40px; height: 200px; position: fixed; right: 0; top: 0; bottom: 0; margin: auto; background: #ddd;}.floorNav>li { height: 40px; line-height: 40px; text-align: center; color: #fff;}.active { background: #e4393c; color: #fff;}

JS部分:

//獲取樓層let floors = document.querySelectorAll('.floor>div');//獲取樓層導航let floorNavs = document.querySelectorAll('.floorNav>li');//滾動監聽window.onscroll = function () { //獲取滾動條高度,兼容ie let scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //符合點亮條件的樓層索引 let activeIndex; //樓層導航圖標點亮控制 floors.forEach((floor, index) => { //檢查各樓層頂端距離視窗頂端距離,如果滿足條件則修改樓層圖標 floor.offsetTop - 100 <= scrollTop ? activeIndex = index : null; }); //根據索引數設置樓層樣式 floorNavs.forEach((nav, index) => { index === activeIndex ? nav.classList.add(’active’) : nav.classList.remove(’active’); });};

需要注意的是,這里我使用了js中操作classList對象的add方法與remove方法,這兩個方法IE并不支持,因為我這邊是不需要考慮IE的,所以就任性了。

本文只是提供了一個樓層導航的思路,實現肯定不是很好,若有更佳的做法,歡迎留言討論,那么本文結束。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
9999国产精品| 日韩精品一区二区三区中文在线| 91久久亚洲| 国产精品毛片一区二区在线看| 国产精品第一国产精品| 综合欧美亚洲| 一本一本久久| 久久影院午夜精品| 日韩高清三区| 亚洲一二三区视频| 女同性一区二区三区人了人一| 久久精品国产成人一区二区三区| 美国三级日本三级久久99| 午夜精品久久久久久久久久蜜桃| 久久久久久久久成人| 国产精选在线| 日韩免费看片| 国产极品模特精品一二| 久久精品72免费观看| 日韩国产一二三区| 开心激情综合| 精品久久福利| 999久久久91| 日韩和的一区二在线| 欧美.日韩.国产.一区.二区| 97视频热人人精品免费| 精品视频网站| 午夜精品影院| 91亚洲精品在看在线观看高清| 在线国产一区二区| 久久婷婷久久| 日韩中文字幕不卡| 中文字幕日本一区二区| 亚洲三级观看| 欧美激情亚洲| 国产精品亚洲综合久久| 亚洲一二三区视频| 日韩电影二区| 精品理论电影在线| 欧美在线看片| 亚洲不卡系列| 一区二区91| 久久国产精品免费一区二区三区| 亚久久调教视频| 久久精品色播| 精品国产午夜| 夜久久久久久| 国产精品久久久久9999高清| 五月天久久久| 免费看一区二区三区| 中文字幕日韩亚洲| 成年男女免费视频网站不卡| 国产亚洲一区二区三区啪| 91亚洲人成网污www| 亚洲日产国产精品| 欧美交a欧美精品喷水| 日韩三级久久| 激情视频网站在线播放色| 欧美日韩国产高清| 蜜桃tv一区二区三区| 中文精品电影| 国产精品一页| 国产综合色产| 亚洲人妖在线| 久久99久久人婷婷精品综合| 日韩视频久久| 久久国产乱子精品免费女| 久久精品动漫| 国产精品黄网站| 国产精品任我爽爆在线播放| 午夜精品亚洲| 激情婷婷久久| 吉吉日韩欧美| 日韩高清一级| 亚洲精品大全| 国产精品一区二区美女视频免费看 | 中文无码久久精品| 亚洲91视频| 久久先锋影音| 亚洲精品va| 亚洲激情久久| 日韩精品水蜜桃| 欧美日韩精品在线一区| 91精品国产调教在线观看| 91精品蜜臀一区二区三区在线 | 黄色aa久久| 亚洲欧美日韩高清在线| 一二三区精品| av免费不卡国产观看| 制服诱惑一区二区| 日本午夜大片a在线观看| 蜜桃一区二区三区| 国产精品久久久久久久久久白浆| 欧美久久精品一级c片| 国产一区二区三区亚洲| 亚洲综合丁香| 美女精品网站| 亚洲精品婷婷| 欧美激情视频一区二区三区免费| 国产精品视频一区二区三区综合 | 日本久久综合| 久久国产88| 日韩电影在线视频| 久久一级电影| 国产精品婷婷| 日韩国产欧美三级| 亚洲影视一区二区三区| 国产精品极品| 夜夜嗨av一区二区三区网站四季av| 欧美韩一区二区| 天堂va在线高清一区| 国产一区二区三区四区五区传媒 | 亚洲高清影视| 丝袜美腿亚洲色图| 久久久蜜桃一区二区人| 国产精品xxx| 亚洲精品在线影院| 日本在线视频一区二区| 久久精品播放| 国产亚洲高清视频| 四虎国产精品免费久久| 国产日韩亚洲| 精品欠久久久中文字幕加勒比| 老司机久久99久久精品播放免费| 精品三级在线| 日韩在线成人| 亚洲欧美日韩在线观看a三区| 免费黄色成人| 亚洲专区欧美专区| 亚洲最新av| 欧美日韩一区自拍| 国产精品美女午夜爽爽| 麻豆久久一区| 你懂的国产精品永久在线| 国产日韩欧美三级| 欧美黄色一区| 国产精品精品国产一区二区| 久久男人av资源站| 久久婷婷亚洲| 国产视频欧美| 日韩1区2区3区| 久久影院一区二区三区| www.com.cn成人| 久久人人99| 最新国产精品久久久| 国产探花一区| 日韩av有码| 在线日韩欧美| 免费黄网站欧美| 91在线成人| 成人在线黄色| 亚洲激情中文在线| 日本伊人午夜精品| 精品成人18| 视频一区中文| 日韩激情中文字幕| 精品一区二区三区免费看| 久久九九99| 亚洲精品黄色| 福利精品一区| 亚洲神马久久| 国产精品啊啊啊| 国产一区亚洲| 中文字幕日本一区| 麻豆精品久久久| 国产主播一区| 日本在线视频一区二区| 国产中文字幕一区二区三区| 亚洲香蕉网站| 欧美日韩网址| 91精品一区二区三区综合在线爱| 蜜桃免费网站一区二区三区| 你懂的亚洲视频| 狠狠干综合网| 国产精品亚洲欧美| 激情久久五月| 国产精品亚洲欧美| 久久精品青草| 亚洲精品系列| 福利精品一区| 免费在线成人网| 久久影院资源站| 五月天久久久| 免费在线观看一区| 伊人久久亚洲影院| 蜜桃精品视频| 国产视频欧美| 精品视频国产| 日韩中文字幕亚洲一区二区va在线| 麻豆视频一区二区| 首页国产欧美久久| 国产精品麻豆久久| 日韩高清一区| 亚洲韩日在线| 日韩精品久久理论片| 日韩成人亚洲| 国产精品第一国产精品| 午夜电影亚洲| 成人在线黄色| 97精品久久|