中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

vue+導(dǎo)航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“vue+導(dǎo)航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“vue+導(dǎo)航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)的示例分析”這篇文章吧。

創(chuàng)新互聯(lián)是一家專業(yè)提供綿竹企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站制作、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為綿竹眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

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

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

完成這個功能需要注意:

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

2、div內(nèi)滾動時當(dāng)前導(dǎo)航需要做響應(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-當(dāng)前導(dǎo)航序號,scrollBox-需要在里面滾動的元素即設(shè)為overflow-y:scroll的父元素div

2、點擊導(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' // 平滑滾動
  })
 }

這里有兩點需要說明:一是因為我vue項目里裝了jquery所以這里直接用了jquery的position().top來獲取元素到父元素的距離,如果項目里沒裝jquery需要把這里換成js的方法來獲取元素到父元素的距離(萬事有Google和度娘),二是點擊之后需要滾動的距離計算時別忘了加上當(dāng)前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)該滾動到第幾個導(dǎo)航的位置
   that.activeMenu = i
   break
  }
  }
 }, true)

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

以上是“vue+導(dǎo)航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:vue+導(dǎo)航錨點聯(lián)動-滾動監(jiān)聽和點擊平滑滾動跳轉(zhuǎn)的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.rwnh.cn/article30/ccehso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站做網(wǎng)站、網(wǎng)站維護、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
盐城市| 乌恰县| 宜阳县| 清流县| 肥城市| 嵩明县| 固原市| 舒兰市| 苗栗县| 吴桥县| 合江县| 克拉玛依市| 景谷| 永济市| 涿州市| 抚松县| 扬中市| 纳雍县| 什邡市| 海淀区| 四会市| 徐州市| 新丰县| 芦山县| 桃园市| 舒兰市| 田东县| 特克斯县| 海兴县| 大方县| 连城县| 嘉善县| 巴青县| 六安市| 潍坊市| 固阳县| 南华县| 固阳县| 遂宁市| 大化| 登封市|