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

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

使用Javascript開發sliding-nav帶滑動條效果的導航插件

瀏覽:183日期:2023-06-07 09:55:55

本文介紹如何使用純Javascript來開發一款簡單的JS插件,本插件可以實現鼠標懸停在導航上時,下方的滑動條自動從當前菜單滑動到所選菜單當中去。

本項目的源代碼寄宿于GitHub,記得點小星星哦:

https://github.com/dosboy0716/sliding-nav

一、前言

效果如下圖:

使用Javascript開發sliding-nav帶滑動條效果的導航插件

二、使用方法

本插件只需要如下的三步,就可以在您的項目中使用:

1、在</body>標記結束前,引用sliding-nav.js文件

2、在需要滑動條的菜單容器上加類名 sliding-nav,當前項使用類名:active

3、使用屬性來定定外觀:sn-color='顏色' sn-radius='圓度' sn-height='高度'

<script src='https://rkxy.com.cn/path/to/sliding-nav.js'></script><ul sn-color='#F00' sn-radius='0px' sn-height='3px'> <li class='active'>菜單項1</li> <li>菜單項2</li> <li>菜單項3</li><ul>三、開發過程1. 模型示例

使用Javascript開發sliding-nav帶滑動條效果的導航插件

導航菜單一般使用上圖的層次型結構,外層容器使用<ul> 標記,菜單項使用<li>標記,假設如果要顯示黃色小橫條,如何定位很重要。

經過分析,雖然在視覺上小橫條位于UL之內,為了不破壞原來導航的樣式,小黃條必須使用absolute的絕對定位,并且初始位置與ul標記相同。

因此,我們把小橫條插入<ul>標記的前面,如上面的小灰點,它就是小橫條的初始位置即(left=0,top=0)的位置。

那么我們如何讓小條看起來在菜單項的正下方呢?

把小條的top屬性賦值為菜單項的高度(即offsetHeight屬性), 把小條的left屬性賦值為菜單項的左邊距(即offsetLeft屬性)

實現上面的功能可以使用如下的代碼:

function init() { var navs = document.getElementsByClassName(’sliding-nav’); for (var i = 0; i < navs.length; i++) { //創建一個DIV與當前導航豎向對齊 var indi = document.createElement('div'); indi. indi.style.borderRadius = navs[i].getAttribute('sn-radius') || '0px' indi.style.height = navs[i].getAttribute('sn-height') || '3px' indi.style.backgroundColor = navs[i].getAttribute('sn-color') || '#F00' indi.style.position = 'absolute' indi.style.transition = '0.5s' //查找當前子菜單項,如果有類名active或者是selected就視為當前項,如果沒有使用第1項 var selected = navs[i].getElementsByClassName(’active’) if (selected.length == 0) { selected = navs[i].getElementsByClassName(’selected’) } if (selected.length == 0) { selected = navs[i].children } if (selected.length == 0) { throw Error(’Sorry, Navigation bar has no item at all!’); } selected = selected[0]; indi.style.width = selected.offsetWidth + 'px'; indi.style.top = selected.offsetHeight + 'px'; indi.style.left = selected.offsetLeft + 'px'; navs[i].parentElement.insertBefore(indi, navs[i]); //未完成,下面插入代碼以綁定事件 } }

如上的代碼構建了初始化函數init(),此函數:

查找所有含有類名sliding-nav的標記,并且按照上面的方法,在前面插入div標記充當“指示條”,并且查找“活動”的菜單項,找到后通過這個菜單項的各個屬性給“指示條”定位。

2、事件與動畫

我們把'指示條'div 標記transition屬性設置成了0.5s,那么只要在事件里直接設置該div的如下:

left屬性就可以實現'指示條'的移動 width屬性就可以設置'指示條'的寬度

所以可以在如上的代碼末尾,插入如下的代碼實現事件與動畫:

for (var j = 0; j < navs[i].children.length; j++) { hover(navs[i].children[j], function(e, elem) { indi.style.width = elem.offsetWidth + 'px'; indi.style.left = elem.offsetLeft + 'px'; }); //移出導航就恢復默認 hover(navs[i], null, function(e, elem) { indi.style.width = selected.offsetWidth + 'px'; indi.style.left = selected.offsetLeft + 'px'; }); }

其中代碼,用到了自定義函數hover,該函數類似于實現hover事件,JS原生只有mouseover和mouseout事件。

函數作用是給DOM元素綁定鼠標移入和鼠標移出事件,具體實現的過程,可以看作者原代碼。

四、所有原代碼

本文實現的所有原代碼如下,希望讀者提出更加優化的建議,我們一起打造更加唯美的前端體驗。

for (var j = 0; j < navs[i].children.length; j++) { hover(navs[i].children[j], function(e, elem) { indi.style.width = elem.offsetWidth + 'px'; indi.style.left = elem.offsetLeft + 'px'; }); //移出導航就恢復默認 hover(navs[i], null, function(e, elem) { indi.style.width = selected.offsetWidth + 'px'; indi.style.left = selected.offsetLeft + 'px'; }); }

到此這篇關于使用Javascript開發sliding-nav帶滑動條效果的導航插件的文章就介紹到這了,更多相關js 開發sliding-nav導航條插件內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线精品一区二区| 欧美福利专区| 日产欧产美韩系列久久99| 午夜在线一区| 免费视频久久| 亚洲精品四区| 日韩欧美中文在线观看| 欧美~级网站不卡| 亚洲无线一线二线三线区别av| 色天使综合视频| 精品视频一区二区三区四区五区| 精品国产亚洲一区二区三区大结局 | 久久久久99| 欧美一区二区三区高清视频 | 久久久久黄色| 精品国产18久久久久久二百| 国产成人77亚洲精品www| 韩国三级一区| 九九综合在线| 91久久午夜| 免费观看久久久4p| 日韩av电影一区| 麻豆国产欧美一区二区三区| 国产一区二区三区不卡视频网站 | 欧美视频二区| 欧美a一区二区| 日本不卡免费高清视频在线| 欧美aa国产视频| 视频在线观看91| 婷婷成人av| 精品三级av| 韩日一区二区三区| 日产欧产美韩系列久久99| 精品九九久久| 中文日韩欧美| 欧美成人一二区| 91精品啪在线观看国产18| 尹人成人综合网| 日韩欧美精品一区二区综合视频| 免费看久久久| 欧美色图一区| 日韩1区2区3区| 麻豆成人av在线| 亚洲免费黄色| 久久免费福利| 亚洲激情偷拍| 麻豆国产91在线播放| 亚洲福利一区| 国产乱码精品一区二区亚洲| 日韩欧美一区二区三区免费看| 亚洲一区二区日韩| av资源中文在线天堂| 丝袜美腿亚洲色图| 精品国产乱码| 亚洲性视频在线| 日韩中文欧美| 欧美精品国产一区| 亚洲激情黄色| 欧美国产极品| 亚洲一区二区三区高清| 久久精品国产成人一区二区三区| 激情综合激情| 国产日韩高清一区二区三区在线| 日韩毛片视频| 欧美亚洲三区| 日韩午夜电影| 精品一二三区| 在线亚洲欧美| 久久精品国产成人一区二区三区| 欧美天堂亚洲电影院在线观看| 国产精品久久久久9999高清| 亚洲激情婷婷| 丝袜诱惑一区二区| 国产日韩欧美高清免费| 国产亚洲福利| 中文字幕成在线观看| 欧美精品中文| 蜜桃一区二区三区在线观看| 日韩国产网站| 久久男人av| 四虎国产精品免费久久| 欧美综合另类| 国产中文欧美日韩在线| 石原莉奈一区二区三区在线观看| 成人自拍av| 精品亚洲二区| 奇米狠狠一区二区三区| 国产精品普通话对白| 日韩1区在线| 国产精品亚洲成在人线| 视频在线观看一区| 99国产精品久久久久久久成人热| 三级在线看中文字幕完整版| 国产精品久久久久久模特| 欧美专区一区二区三区| 欧美性感美女一区二区| 97精品国产一区二区三区| 欧美日韩一区二区高清| 亚洲一区二区日韩| 国产一区二区高清| 欧美va天堂| 日韩精品久久久久久久电影99爱| 久久亚洲人体| 欧美激情在线精品一区二区三区| 青青国产精品| 日韩和欧美的一区| 亚洲欧美在线专区| 中文无码久久精品| 日韩精品一二三| 视频在线观看91| 久久亚洲电影| 久久夜色精品| 三级欧美在线一区| 日韩三区免费| 天堂av在线| 亚洲国产成人二区| 岛国av免费在线观看| 福利一区视频| 久久男人天堂| 日韩电影免费网址| 日韩88av| 蜜臀久久精品| 日韩中文在线播放| 久久精品国产亚洲夜色av网站 | 91p九色成人| 日韩av一二三| 日韩高清在线观看一区二区| 亚久久调教视频| 91亚洲精品视频在线观看| 日韩精品久久久久久久软件91| 亚洲精品婷婷| 国产亚洲精品美女久久久久久久久久| 91免费精品国偷自产在线在线| 日韩二区三区在线观看| 国产欧美日韩影院| 国产欧美日韩综合一区在线播放| 91精品视频一区二区| 国产精品密蕾丝视频下载| 国产精品sm| 国产精品mv在线观看| 国产精品二区不卡| 99久久久久| 日韩在线观看一区二区| 日本一区二区三区中文字幕| 国产日本精品| 久久三级中文| 欧美片第1页| 亚洲国产专区校园欧美| 午夜一区在线| 一区二区不卡| 国产精品videossex| 在线中文字幕播放| 欧美另类专区| 亚洲v天堂v手机在线| 日本成人在线一区| 免费视频一区二区三区在线观看 | 丰满少妇一区| 亚洲91精品| 亚洲小说春色综合另类电影| 国产精品视频一区二区三区综合| 福利欧美精品在线| 欧美久久精品一级c片| 久久不射网站| 国产日产一区| 黑人精品一区| 国产精品美女久久久| 国产欧美视频在线| 亚洲播播91| 五月亚洲婷婷 | 国产精品白浆| 欧美成人基地| 午夜性色一区二区三区免费视频| 精品久久在线| 99riav国产精品| 国产精选久久| 欧美日韩国产综合网| 久久国产视频网| 99久久久久久中文字幕一区| 久久国产精品99国产| 国产精品任我爽爆在线播放| 久久久久网站| 日韩不卡手机在线v区| 精品美女视频 | 久久国产尿小便嘘嘘| 日韩中文欧美| 日韩美女精品| 国产福利片在线观看| 综合亚洲视频| 最新中文字幕在线播放| 亚洲精品免费观看| 中文字幕在线免费观看视频| 亚洲精品字幕| 高潮一区二区| 日韩av中文字幕一区二区三区| 精品日韩视频| 国产日韩欧美中文在线| 最新亚洲激情| 97人人精品| 日本在线一区二区三区| 99久久99视频只有精品|