欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解

 更新時(shí)間:2020年08月10日 10:41:15   作者:是我別出聲  
這篇文章主要介紹了vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

最終效果如下:(注意需要做錨點(diǎn)聯(lián)動(dòng)的部分并不在頁(yè)面的頂部而是頁(yè)面的某個(gè)div內(nèi))-chrome

完成這個(gè)功能需要注意:

1、點(diǎn)擊導(dǎo)航平滑滾動(dòng)到導(dǎo)航內(nèi)容處

2、div內(nèi)滾動(dòng)時(shí)當(dāng)前導(dǎo)航需要做響應(yīng)

代碼如下:

1、html結(jié)構(gòu)(因?yàn)閺捻?xiàng)目里截取代碼,allMenuList數(shù)據(jù)內(nèi)容就不貼出來(lái)了,不算難點(diǎn),這個(gè)可以根據(jù)自己的項(xiàng)目進(jìn)行調(diào)整,相應(yīng)的方法和類名別弄錯(cuò)就行)

<div class="all-title">
    全部應(yīng)用
    <p class="fr">
     <span v-for="(item, index) in allMenuList" :key="item.id" :class="[index===activeMenu?'active':'']" @click="jump(index)">{{ item.name }}</span>
    </p>
   </div>
   <div id="scrollBox" 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" class="applications-item" @click="changeRouterForRight(item.pathName,item.menuCode)">
       <img src="">
       <span>{{ item.name }}</span>
       <template v-if="showEdit">
        <i v-if="addOrRemove(item.menuCode)==0" class="el-icon-circle-plus add-btn" @click="addMenu(item.menuCode)" />
        <i v-if="addOrRemove(item.menuCode)==1" class="el-icon-remove remove-btn" @click="removeMenu(item.menuCode)" />
       </template>
      </li>
     </ul>
    </div>
   </div>

需要說(shuō)明的數(shù)據(jù):activeMenu-當(dāng)前導(dǎo)航序號(hào),scrollBox-需要在里面滾動(dòng)的元素即設(shè)為overflow-y:scroll的父元素div

2、點(diǎn)擊導(dǎo)航平滑滾動(dòng)的方法:jump(index)

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

這里有兩點(diǎn)需要說(shuō)明:一是因?yàn)槲襳ue項(xiàng)目里裝了jquery所以這里直接用了jquery的position().top來(lái)獲取元素到父元素的距離,如果項(xiàng)目里沒(méi)裝jquery需要把這里換成js的方法來(lái)獲取元素到父元素的距離(萬(wàn)事有Google和度娘),二是點(diǎn)擊之后需要滾動(dòng)的距離計(jì)算時(shí)別忘了加上當(dāng)前div已經(jīng)滾動(dòng)的距離即已經(jīng)被卷起的高度

-----到這里我們就可以實(shí)現(xiàn)1的功能

3、監(jiān)聽(tīng)scrollBox的滾動(dòng):

寫在mounted里

// 獲取滾動(dòng)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)
  }
  // 監(jiān)聽(tīng)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]) { // 根據(jù)滾動(dòng)距離判斷應(yīng)該滾動(dòng)到第幾個(gè)導(dǎo)航的位置
     that.activeMenu = i
     break
    }
   }
  }, true)

這里需要注意addEventListener里有三個(gè)參數(shù):'scroll' 、function、true

補(bǔ)充知識(shí):vue搭建腳手架報(bào)錯(cuò):rollbackFailedOptinal:verb npm-session解決

vue搭建腳手架報(bào)錯(cuò):

rollbackFailedOptinal:verb npm-session

解決

如果你是在公司,而你的公司又用了代理連的外網(wǎng)

想辦法直接連外網(wǎng)吧,問(wèn)題就是代理造成的

我用手機(jī)連電腦USB共享網(wǎng)絡(luò) 哎,心好累

以上這篇vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于在vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫的代碼示例

    關(guān)于在vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫的代碼示例

    Vue是一款流行的前端框架,支持過(guò)渡動(dòng)畫的實(shí)現(xiàn)是其中的一項(xiàng)重要特性,在Vue中,使用過(guò)渡動(dòng)畫可以為用戶提供更加友好的用戶體驗(yàn),下面我將為大家介紹一下子如何在Vue中實(shí)現(xiàn)過(guò)渡動(dòng)畫,需要的朋友可以參考下
    2023-06-06
  • Vuepress 搭建帶評(píng)論功能的靜態(tài)博客的實(shí)現(xiàn)

    Vuepress 搭建帶評(píng)論功能的靜態(tài)博客的實(shí)現(xiàn)

    這篇文章主要介紹了Vuepress 搭建帶評(píng)論功能的靜態(tài)博客的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能(案例代碼)

    這篇文章主要介紹了vue3??mark.js?實(shí)現(xiàn)文字標(biāo)注功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Vue 2.0+Vue-router構(gòu)建一個(gè)簡(jiǎn)單的單頁(yè)應(yīng)用(附源碼)

    Vue 2.0+Vue-router構(gòu)建一個(gè)簡(jiǎn)單的單頁(yè)應(yīng)用(附源碼)

    這篇文章主要給大家介紹了基于Vue 2.0+Vue-router構(gòu)建了一個(gè)簡(jiǎn)單的單頁(yè)應(yīng)用,文中通過(guò)實(shí)例介紹的非常詳細(xì),并在文末給出了源碼下載,需要的朋友可以下載學(xué)習(xí)參考,下面來(lái)一起看看吧。
    2017-03-03
  • 基于Vue.js與WordPress Rest API構(gòu)建單頁(yè)應(yīng)用詳解

    基于Vue.js與WordPress Rest API構(gòu)建單頁(yè)應(yīng)用詳解

    這篇文章主要介紹了基于Vue.js與WordPress Rest API構(gòu)建單頁(yè)應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue項(xiàng)目無(wú)法刪除的問(wèn)題及解決

    vue項(xiàng)目無(wú)法刪除的問(wèn)題及解決

    這篇文章主要介紹了vue項(xiàng)目無(wú)法刪除的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)的大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue向后端傳數(shù)據(jù)后端接收為null問(wèn)題及解決

    Vue向后端傳數(shù)據(jù)后端接收為null問(wèn)題及解決

    這篇文章主要介紹了Vue向后端傳數(shù)據(jù)后端接收為null問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue中v-bind和v-model的區(qū)別詳解

    vue中v-bind和v-model的區(qū)別詳解

    v-bind和v-model是Vue.js中的兩個(gè)常用指令,它們?cè)诠δ芎陀猛旧嫌幸恍﹨^(qū)別,接下來(lái)小編就給大家具有講講vue中v-bind和v-model區(qū)別,感興趣的同學(xué)跟著小編一起來(lái)看看吧
    2023-08-08
  • 基于Vue CSR的微前端實(shí)現(xiàn)方案實(shí)踐

    基于Vue CSR的微前端實(shí)現(xiàn)方案實(shí)踐

    這篇文章主要介紹了基于Vue CSR的微前端實(shí)現(xiàn)方案實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 項(xiàng)目中如何使用axios過(guò)濾多次重復(fù)請(qǐng)求詳解

    項(xiàng)目中如何使用axios過(guò)濾多次重復(fù)請(qǐng)求詳解

    在項(xiàng)目開(kāi)發(fā)中經(jīng)常需要處理重復(fù)點(diǎn)擊導(dǎo)致多次調(diào)用接口的問(wèn)題,這篇文章主要介紹了項(xiàng)目中如何使用axios過(guò)濾多次重復(fù)請(qǐng)求的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評(píng)論