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

vue+導航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)實例

 更新時間:2019年11月13日 10:39:36   作者:辣姐什么鬼  
今天小編就為大家分享一篇vue+導航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

完成這個功能需要注意:

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

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

代碼如下:

1、html結(jié)構(gòu)(因為從項目里截取代碼數(shù)據(jù)內(nèi)容就不貼出來了,不算難點,這個可以根據(jù)自己的項目進行調(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-當前導航序號,scrollBox-需要在里面滾動的元素即設(shè)為overflow-y:scroll的父元素div

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

// 跳轉(zhuǎn)
 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已經(jīng)滾動的距離即已經(jīng)被卷起的高度

-----到這里我們就可以實現(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)該滾動到第幾個導航的位置
   that.activeMenu = i
   break
  }
  }
 }, true)

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

以上這篇vue+導航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue圖片裁剪功能實現(xiàn)代碼

    Vue圖片裁剪功能實現(xiàn)代碼

    這篇文章主要介紹了Vue圖片裁剪功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • Vue + iView實現(xiàn)Excel上傳功能的完整代碼

    Vue + iView實現(xiàn)Excel上傳功能的完整代碼

    前一段時間項目經(jīng)歷了前端上傳文件的過程,首先進入頁面會展示默認的樣子,選中要上傳的excel文件,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友參考下吧
    2021-06-06
  • Vue CLI3移動端適配(px2rem或postcss-plugin-px2rem)

    Vue CLI3移動端適配(px2rem或postcss-plugin-px2rem)

    這篇文章主要介紹了Vue CLI3移動端適配(px2rem或postcss-plugin-px2rem),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 使用Vue3實現(xiàn)交互式雷達圖的代碼實現(xiàn)

    使用Vue3實現(xiàn)交互式雷達圖的代碼實現(xiàn)

    雷達圖是一種可視化數(shù)據(jù)的方式,用于比較多個類別中不同指標的相對值,它適用于需要展示多個指標之間的關(guān)系和差異的場景,本文給大家介紹了如何用Vue3輕松創(chuàng)建交互式雷達圖,需要的朋友可以參考下
    2024-06-06
  • 詳細解讀VUE父子組件的使用

    詳細解讀VUE父子組件的使用

    這篇文章主要介紹了詳細解讀VUE父子組件的使用,今天來講一種子父組件深度耦合的方式,使我們不用額外的創(chuàng)建新的組件,也可以達到一些效果,下面與你們分享一下
    2023-05-05
  • el-menu彈出菜單樣式不生效的問題及解決方法

    el-menu彈出菜單樣式不生效的問題及解決方法

    這篇文章主要介紹了el-menu彈出菜單樣式不生效的問題及解決方法,修改彈出框元素不在 el-menu 樣式中,我們需要在 el-menu–popup 中修改樣式,具體操作代碼跟隨小編一起看看吧
    2024-07-07
  • 在vue中nextTick用法及nextTick 的原理是什么

    在vue中nextTick用法及nextTick 的原理是什么

    這篇文章主要介紹了在vue中nextTick用法及nextTick 的原理是什么,Vue.js 是一個流行的前端框架,它提供了一種響應(yīng)式的數(shù)據(jù)綁定機制,使得頁面的數(shù)據(jù)與頁面的 UI 組件之間能夠自動同步,需要的朋友可以參考下
    2023-04-04
  • 基于vue-ssr服務(wù)端渲染入門詳解

    基于vue-ssr服務(wù)端渲染入門詳解

    這篇文章主要介紹了基于vue-ssr服務(wù)端渲染入門詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • vue el-row中ul間距問題

    vue el-row中ul間距問題

    這篇文章主要介紹了vue el-row中ul間距問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解Vue中狀態(tài)管理Vuex

    詳解Vue中狀態(tài)管理Vuex

    vuex是一個專門為vue.js設(shè)計的狀態(tài)管理模式,并且也可以使用devtools進行調(diào)試。
    2017-05-05

最新評論

得荣县| 保靖县| 桃园县| 昔阳县| 鄄城县| 海安县| 北安市| 多伦县| 玉树县| 志丹县| 东山县| 文昌市| 镇江市| 晋宁县| 鄢陵县| 双流县| 哈密市| 临猗县| 阳泉市| 旬邑县| 黄陵县| 荆州市| 固镇县| 错那县| 濉溪县| 江北区| 龙岩市| 南康市| 淮北市| 馆陶县| 曲麻莱县| 德兴市| 巧家县| 杭锦旗| 石河子市| 云和县| 内乡县| 武强县| 东安县| 天长市| 理塘县|