最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

完成這個功能需要注意:

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

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

代碼如下:

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

<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>

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

2、點(diǎn)擊導(dǎo)航平滑滾動的方法: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 // 獲取需要滾動的距離
   // Chrome
   this.scrollBox.scrollTo({
    top: scrollTop,
    behavior: 'smooth' // 平滑滾動
   })
  }

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

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

3、監(jiān)聽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)
  }
  // 監(jiān)聽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ù)滾動距離判斷應(yīng)該滾動到第幾個導(dǎo)航的位置
     that.activeMenu = i
     break
    }
   }
  }, true)

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

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

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

rollbackFailedOptinal:verb npm-session

解決

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

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

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

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

相關(guān)文章

  • Vue的路由動態(tài)重定向和導(dǎo)航守衛(wèi)實(shí)例

    Vue的路由動態(tài)重定向和導(dǎo)航守衛(wèi)實(shí)例

    下面小編就為大家分享一篇Vue的路由動態(tài)重定向和導(dǎo)航守衛(wèi)實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Vuex實(shí)現(xiàn)購物車小功能

    Vuex實(shí)現(xiàn)購物車小功能

    這篇文章主要為大家詳細(xì)介紹了Vuex實(shí)現(xiàn)購物車小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Vue3前端做打印頁面信息實(shí)現(xiàn)打印功能(打印界面某個部分)

    Vue3前端做打印頁面信息實(shí)現(xiàn)打印功能(打印界面某個部分)

    這篇文章主要介紹了如何使用vue3-print-nb依賴在Vue?3項(xiàng)目中實(shí)現(xiàn)頁面打印功能,提供了完整的代碼示例,大家可以根據(jù)項(xiàng)目需求選擇合適的打印方法,需要的朋友可以參考下
    2025-02-02
  • vue點(diǎn)擊按鈕跳轉(zhuǎn)到另一個vue頁面實(shí)現(xiàn)方法

    vue點(diǎn)擊按鈕跳轉(zhuǎn)到另一個vue頁面實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于vue點(diǎn)擊按鈕跳轉(zhuǎn)到另一個vue頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • vue2中使用quill編輯器+表格功能(步驟詳解)

    vue2中使用quill編輯器+表格功能(步驟詳解)

    這篇文章主要介紹了vue2中使用quill編輯器+表格功能,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • vue實(shí)現(xiàn)分頁欄效果

    vue實(shí)現(xiàn)分頁欄效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)分頁欄效果,分頁欄設(shè)計(jì)的步驟與實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Vue3組合式API中使用forwardRef()函數(shù)

    Vue3組合式API中使用forwardRef()函數(shù)

    本文主要介紹了Vue3組合式API中使用forwardRef()函數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • vue中 數(shù)字相加為字串轉(zhuǎn)化為數(shù)值的例子

    vue中 數(shù)字相加為字串轉(zhuǎn)化為數(shù)值的例子

    今天小編就為大家分享一篇vue中 數(shù)字相加為字串轉(zhuǎn)化為數(shù)值的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue預(yù)渲染:prerender-spa-plugin生成靜態(tài)HTML與vue-meta-info更新meta

    Vue.js中,prerender-spa-plugin和vue-meta-info插件的結(jié)合使用,提供了解決SEO問題的方案,prerender-spa-plugin通過預(yù)渲染技術(shù)生成靜態(tài)HTML,而vue-meta-info則能動態(tài)管理頁面元數(shù)據(jù),本文將探討如何使用這兩個工具優(yōu)化Vue.js項(xiàng)目的SEO表現(xiàn),包括安裝、配置及注意事項(xiàng)
    2024-10-10
  • Vue 解決通過this.$refs來獲取DOM或者組件報(bào)錯問題

    Vue 解決通過this.$refs來獲取DOM或者組件報(bào)錯問題

    這篇文章主要介紹了Vue 解決通過this.$refs來獲取DOM或者組件報(bào)錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論

佛冈县| 库伦旗| 武山县| 麟游县| 四子王旗| 天水市| 松溪县| 彭州市| 尼勒克县| 康定县| 卢湾区| 荃湾区| 山阳县| 通化县| 肇州县| 凤冈县| 张家口市| 平遥县| 九江市| 南华县| 浑源县| 周宁县| 岳池县| 塘沽区| 巴马| 图们市| 伊川县| 曲水县| 洪泽县| 阜康市| 长宁县| 自治县| 卓尼县| 灵武市| 云霄县| 盖州市| 阿克陶县| 眉山市| 青阳县| 娄烦县| 益阳市|