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

使用vue指令實(shí)現(xiàn)吸頂效果

 更新時(shí)間:2023年11月17日 11:56:49   作者:爛橘子妙用  
要想實(shí)現(xiàn)一個(gè)吸頂效果不是很難,網(wǎng)絡(luò)上有很多教程,其中有一種就是通過fiexd加top來實(shí)現(xiàn),今天突然就想做一個(gè)吸頂效果,因?yàn)樽罱荚谟胿ue,所以想用vue來做一個(gè)吸頂效果的案例,感興趣的朋友可以參考下

實(shí)現(xiàn)思路

  • 獲取當(dāng)前dom節(jié)點(diǎn)相對(duì)offsetParent的offsetTop,將這個(gè)offsetTop保存起來(防止當(dāng)前dom的position為fixed時(shí)導(dǎo)致offsetTop重置為0)。
  • 監(jiān)聽頁面滑動(dòng)距離,當(dāng)滑動(dòng)距離-offsetTop>0的時(shí)候,當(dāng)前dom節(jié)點(diǎn)就吸頂,反之恢復(fù)之前狀態(tài)。

實(shí)現(xiàn)代碼

話不多說上代碼:

export default {
  stick: {
    bind: (el, binding, vnode) => {
      let oldOffsetTop = null; // 保存當(dāng)前元素的offsetTop,防止吸頂后offsetTop重置為0
      addEventListener('scroll', e => {
        const scrollTop = window.pageYoffset || document.documentElement.scrollTop || document.body.scrollTop// 滾動(dòng)距離
        const { offsetTop } = el // 元素距離offsetParent的距離
        if (!oldOffsetTop) oldOffsetTop = offsetTop
        if (scrollTop - oldOffsetTop > 0) {
          el.style.position = 'fixed'
          if (binding.value) {
            el.style.top = binding.value + 'px'
          } else {
            el.style.top = '0px'
          }
        } else {
          if (el.style.position === 'fixed') {
            el.style.position = 'static'
          }
        }
      })

    }
  }
}

上述代碼實(shí)現(xiàn)了一個(gè)吸頂效果的vue指令,最后只需要在main.js文件中將這個(gè)指令注冊(cè)即可使用。

main.js文件中加入

import directive from './common/directive'
for (const key in directive) {
  Vue.directive(key, directive[key])
}

使用方式:

<li class="stick" v-stick>吸頂效果指令</li>

或者加入偏移量

<li class="stick" v-stick="100">吸頂效果指令</li>

<template>
<div id="app">
  <!-- <starrySky /> -->
  <div class="p"></div>
  <ul>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1222222</li>
   <li class="stick" v-stick>吸頂效果指令</li>
   <li>12222222</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
   <li>1</li>
  </ul>
</div>
</template>

<script>

export default {
  components: {
  }
}
</script>

<style>

#app {
}
.p {
  height: 100vh;
}
ul {
}
li{
  padding: 30px;
}
</style>

到此這篇關(guān)于使用vue指令實(shí)現(xiàn)吸頂效果的文章就介紹到這了,更多相關(guān)vue指令實(shí)現(xiàn)吸頂內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue3對(duì)比Vue2的優(yōu)點(diǎn)總結(jié)

    Vue3對(duì)比Vue2的優(yōu)點(diǎn)總結(jié)

    vue3解決了vue2的一些缺陷與弊端,學(xué)習(xí)新的技術(shù)是很有必要的,本文總結(jié)了一些vue3的優(yōu)點(diǎn),希望各位能盡快轉(zhuǎn)入vue3的使用中
    2021-06-06
  • 完美解決通過IP地址訪問VUE項(xiàng)目的問題

    完美解決通過IP地址訪問VUE項(xiàng)目的問題

    這篇文章主要介紹了完美解決通過IP地址訪問VUE項(xiàng)目的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue中使用vue-pdf的方法詳解

    vue中使用vue-pdf的方法詳解

    這篇文章主要介紹了vue中使用vue-pdf的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Vue?列表過濾與排序的實(shí)現(xiàn)

    Vue?列表過濾與排序的實(shí)現(xiàn)

    這篇文章主要介紹了Vue?列表過濾與排序的實(shí)現(xiàn),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-05-05
  • vue webpack build資源相對(duì)路徑的問題及解決方法

    vue webpack build資源相對(duì)路徑的問題及解決方法

    這篇文章主要介紹了vue webpack build資源相對(duì)路徑的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Vue中的components組件與props的使用解讀

    Vue中的components組件與props的使用解讀

    這篇文章主要介紹了Vue中的components組件與props的使用解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • vue與TypeScript集成配置最簡教程(推薦)

    vue與TypeScript集成配置最簡教程(推薦)

    本篇文章主要介紹了vue與TypeScript集成配置最簡教程(推薦),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Vue2中使用axios的3種方法實(shí)例總結(jié)

    Vue2中使用axios的3種方法實(shí)例總結(jié)

    axios從功能上來說就是主要用于我們前端向后端發(fā)送請(qǐng)求,是基于http客戶端的promise,面向?yàn)g覽器和nodejs,下面這篇文章主要給大家介紹了關(guān)于Vue2中使用axios的3種方法,需要的朋友可以參考下
    2022-09-09
  • vue3組件的掛載更新流程詳解

    vue3組件的掛載更新流程詳解

    這篇文章主要介紹了vue3組件的掛載更新流程,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • vue3 與 vue2 優(yōu)點(diǎn)對(duì)比匯總

    vue3 與 vue2 優(yōu)點(diǎn)對(duì)比匯總

    隨著用vue3 的開發(fā)者越來越多,其必定是又她一定的有帶你,接下來這篇文章小編就為大家介紹vue3 對(duì)比 vue2 有什么優(yōu)點(diǎn)?感興趣的小伙伴請(qǐng)跟小編一起閱讀下文吧
    2021-09-09

最新評(píng)論