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

Vue 無限滾動加載指令實現(xiàn)方法

 更新時間:2019年05月28日 09:23:49   作者:破殼而出的蝌蚪  
這篇文章主要介紹了Vue 無限滾動加載指令的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下

也不存在什么加載咯, 就是一個判斷滾動條是否到達(dá)瀏覽器底部了。 如果到了就觸發(fā)事件,米到就不處理。

計算公式提簡單的   底部等于(0) =  滾動條高度 - 滾動條頂部距離 - 可視高度。  反正結(jié)果就是0。

一、獲取滾動條位置

class Scroll {
  static get top() {
    return Math.max(document.documentElement.scrollTop || document.body.scrollTop);
  }
  static get clientHeight() {
    return Math.max(document.documentElement.clientHeight || document.body.clientHeight);
  }
  static get clientWidth() {
    return Math.max(document.documentElement.clientWidth || document.body.clientWidth);
  }
  static get height() {
    return Math.max(document.documentElement.scrollHeight || document.body.scrollHeight);
  }
  static get width() {
    return Math.max(document.documentElement.scrollWidth || document.body.scrollWidth);
  }
  static get bottom() {
    return Scroll.height - Scroll.clientHeight - Scroll.top;
  }
}

二、給根節(jié)點綁定滾動事件

vue給body元素綁定滾動條事件,真TMD草蛋。事件綁定上去了 媽的 就是不觸發(fā)事件。不知道什么鬼問題。

最后直接給根節(jié)點HTML綁定滾動事件。

const on = (function () {
  if (document.addEventListener) {
    return function (element, event, handler) {
      if (element && event && handler) {
        element.addEventListener(event, handler, false);
      }
    };
  } else {
    return function (element, event, handler) {
      if (element && event && handler) {
        element.attachEvent('on' + event, handler);
      }
    };
  }
})();

三、注冊全局指令

/**
 * 降低事件執(zhí)行頻率
 */
const downsampler = (function () {
  let result = null;
  return function (time, func) {
    if (!result) {
      result = setTimeout(function () {
        func();
        result = null;
      }, time);
    }
  }
})();

Vue.directive("infinite-scroll", {
  bind(el, binding, vnode) {
    on(window, 'scroll', function () {
      if (typeof binding.value === "function" && Scroll.bottom <= 50) {  // 小于50就觸發(fā)
        downsampler(50, binding.value); // 降低觸發(fā)頻率
      }
    })
  }
});

四、實例:

<div class="app" v-infinite-scroll="coupon">
    <template v-for="item in goods">
      <p>{{item}}</p>
   </template>
</div>
    let v = new Vue({
      el: ".app",
      data(){
        return {
          goods:[]
        }
      },
      methods: {
        coupon() {
          this.goods.push("你呵呵")
        }
      }
    })

演示地址:http://whnba.gitee.io/tkspa/

總結(jié)

以上所述是小編給大家介紹的Vue 無限滾動加載指令實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 解決vue多層彈框時存在遮擋問題

    解決vue多層彈框時存在遮擋問題

    本文給大家介紹vue多層彈框時存在遮擋問題,解決思路首先想到的是找到對應(yīng)的遮擋層的css標(biāo)簽,然后修改z-index值,但是本思路只能解決首次問題,再次打開還會存在相同的問題,故該思路錯誤,下面給大家?guī)硪环N正確的思路,一起看看吧
    2022-03-03
  • vue項目如何配置public靜態(tài)資源路徑訪問

    vue項目如何配置public靜態(tài)資源路徑訪問

    這篇文章主要介紹了vue項目如何配置public靜態(tài)資源路徑訪問方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue?cli使用iview自定義主題遇到的坑及解決

    vue?cli使用iview自定義主題遇到的坑及解決

    vue?cli使用iview自定義主題遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 前端在el-dialog中嵌套多個el-dialog代碼實現(xiàn)

    前端在el-dialog中嵌套多個el-dialog代碼實現(xiàn)

    最近使用vue+elementUI做項目,使用過程中很多地方會用到dialog這個組件,有好幾個地方用到了dialog的嵌套,下面這篇文章主要給大家介紹了關(guān)于前端在el-dialog中嵌套多個el-dialog代碼實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟

    在Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟

    在工作中遇到需要前端上傳excel文件獲取到相應(yīng)數(shù)據(jù)處理之后傳給后端并且展示上傳文件的數(shù)據(jù),所以本文就來給大家介紹一下Vue中導(dǎo)入并讀取Excel數(shù)據(jù)的操作步驟,需要的朋友可以參考下
    2023-08-08
  • vue項目中如何使用mock你知道嗎

    vue項目中如何使用mock你知道嗎

    這篇文章主要為大家介紹了vue項目如何使用mock,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • el-table表格動態(tài)合并行及合并行列實例詳解

    el-table表格動態(tài)合并行及合并行列實例詳解

    在使用el-table的時候經(jīng)常會涉及到表格的列合并,包括表格操作列的合并,下面這篇文章主要給大家介紹了關(guān)于el-table表格動態(tài)合并行及合并行列的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • VUE項目實現(xiàn)主題切換的多種方法

    VUE項目實現(xiàn)主題切換的多種方法

    這篇文章主要介紹了VUE項目實現(xiàn)主題切換的方法,本文通過多種方法給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • vue中使用postcss-px2rem的兩種方法

    vue中使用postcss-px2rem的兩種方法

    這篇文章主要介紹了vue項目中使用postcss-px2rem的方法總結(jié),在項目中為了屏幕適配,經(jīng)常會用到rem,postcss-px2rem就是為了讓我們直接在將代碼中px自動轉(zhuǎn)化成對應(yīng)的rem的一個插件,需要的朋友可以參考下
    2022-05-05
  • Vue3安裝dataV報錯問題解決方案

    Vue3安裝dataV報錯問題解決方案

    這篇文章主要給大家介紹了關(guān)于Vue3安裝dataV報錯問題解決方案的相關(guān)資料,dataV用于大屏展示,個人覺得比echarts簡單很多,需要的朋友可以參考下
    2023-06-06

最新評論

花莲市| 鲁甸县| 蓬溪县| 元氏县| 蓬安县| 锦州市| 南部县| 新干县| 丰县| 天台县| 旬邑县| 南丹县| 磐石市| 长子县| 淄博市| 宜良县| 同江市| 丹江口市| 新营市| 屯留县| 丘北县| 三河市| 历史| 辛集市| 尼勒克县| 岳阳县| 石河子市| 堆龙德庆县| 乌鲁木齐市| 繁峙县| 霞浦县| 大悟县| 临沧市| 哈巴河县| 西贡区| 雅江县| 镶黄旗| 大新县| 文水县| 青州市| 环江|