国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

vue 導航錨點_點擊平滑滾動,導航欄對應變化詳解

瀏覽:69日期:2022-12-11 16:54:40

最終效果如下:(注意需要做錨點聯動的部分并不在頁面的頂部而是頁面的某個div內)-chrome

vue 導航錨點_點擊平滑滾動,導航欄對應變化詳解

完成這個功能需要注意:

1、點擊導航平滑滾動到導航內容處

2、div內滾動時當前導航需要做響應

代碼如下:

1、html結構(因為從項目里截取代碼,allMenuList數據內容就不貼出來了,不算難點,這個可以根據自己的項目進行調整,相應的方法和類名別弄錯就行)

<div class='all-title'> 全部應用 <p class='fr'> <span v-for='(item, index) in allMenuList' :key='item.id' : @click='jump(index)'>{{ item.name }}</span> </p> </div> <div class='applications-content'> <div v-for='(val, index) in allMenuList' :key='val.id' class='all-list do-jump'> <p class='applications-title'>{{ val.name }}</p> <ul class='applications-list'> <li v-for='item in val.children' :key='item.id' @click='changeRouterForRight(item.pathName,item.menuCode)'> <img src='http://www.cgvv.com.cn/bcjs/11065.html'> <span>{{ item.name }}</span> <template v-if='showEdit'><i v-if='addOrRemove(item.menuCode)==0' @click='addMenu(item.menuCode)' /><i v-if='addOrRemove(item.menuCode)==1' @click='removeMenu(item.menuCode)' /> </template> </li> </ul> </div> </div>

需要說明的數據:activeMenu-當前導航序號,scrollBox-需要在里面滾動的元素即設為overflow-y:scroll的父元素div

2、點擊導航平滑滾動的方法:jump(index)

// 跳轉 jump(index) { this.activeMenu = index // 當前導航 const jump = jQuery(’.do-jump’).eq(index) const scrollTop = jump.position().top + this.scrollBox.scrollTop // 獲取需要滾動的距離 // Chrome this.scrollBox.scrollTo({ top: scrollTop, behavior: ’smooth’ // 平滑滾動 }) }

這里有兩點需要說明:一是因為我vue項目里裝了jquery所以這里直接用了jquery的position().top來獲取元素到父元素的距離,如果項目里沒裝jquery需要把這里換成js的方法來獲取元素到父元素的距離(萬事有Google和度娘),二是點擊之后需要滾動的距離計算時別忘了加上當前div已經滾動的距離即已經被卷起的高度

-----到這里我們就可以實現1的功能

3、監聽scrollBox的滾動:

寫在mounted里

// 獲取滾動dom元素 this.scrollBox = document.getElementById(’scrollBox’) const jump = jQuery(’.do-jump’) const topArr = [] for (let i = 0; i < jump.length; i++) { topArr.push(jump.eq(i).position().top) } // 監聽dom元素的scroll事件 this.scrollBox.addEventListener(’scroll’, () => { const current_offset_top = that.scrollBox.scrollTop for (let i = 0; i < topArr.length; i++) { if (current_offset_top <= topArr[i]) { // 根據滾動距離判斷應該滾動到第幾個導航的位置 that.activeMenu = i break } } }, true)

這里需要注意addEventListener里有三個參數:’scroll’ 、function、true

補充知識:vue搭建腳手架報錯:rollbackFailedOptinal:verb npm-session解決

vue搭建腳手架報錯:

rollbackFailedOptinal:verb npm-session

解決

如果你是在公司,而你的公司又用了代理連的外網

想辦法直接連外網吧,問題就是代理造成的

我用手機連電腦USB共享網絡 哎,心好累

以上這篇vue 導航錨點_點擊平滑滾動,導航欄對應變化詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
主站蜘蛛池模板: 国产高清一区二区三区免费视频 | 全部免费的毛片视频观看 | 最近手机高清中文字幕大全7 | 国产精品亚洲天堂 | 一区二区不卡久久精品 | 亚洲国语在线视频手机在线 | 日韩欧美视频一区二区在线观看 | 亚洲欧美专区精品久久 | 精品欧美一区二区三区免费观看 | 欧美成人三级大全 | 日韩在线一区二区三区 | 日本免费网站视频www区 | 欧美性活一级视频 | 国产成人免费不卡在线观看 | 91aaa免费免费国产在线观看 | 天天夜夜久久 | 国产女人伦码一区二区三区不卡 | 欧美最刺激好看的一级毛片 | 欧美午夜网站 | 悠悠影院欧美日韩国产 | 免费v片在线看 | 99精品视频在线在线视频观看 | 午夜免费福利网站 | 91久久香蕉青青草原娱乐 | 成人精品久久 | 久久九九久精品国产 | 久久久久久久99久久久毒国产 | 精品国产日韩亚洲一区二区 | 亚洲国产天堂在线网址 | 欧美一欧美一级毛片 | 91久久亚洲最新一本 | 国产福利一区二区在线精品 | 美女毛片儿 | 亚洲国产第一 | 国产精品国三级国产aⅴ | 视频在线色 | a级片免费在线播放 | 黄网站www | 日本aaaa级 | 国产精品免费aⅴ片在线观看 | 亚洲综合色一区二区三区小说 |