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

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

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

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

計算公式提簡單的   底部等于(0) =  滾動條高度 - 滾動條頂部距離 - 可視高度。  反正結果就是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/

總結

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

相關文章

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

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

    本文給大家介紹vue多層彈框時存在遮擋問題,解決思路首先想到的是找到對應的遮擋層的css標簽,然后修改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的嵌套,下面這篇文章主要給大家介紹了關于前端在el-dialog中嵌套多個el-dialog代碼實現(xiàn)的相關資料,需要的朋友可以參考下
    2024-01-01
  • 在Vue中導入并讀取Excel數(shù)據(jù)的操作步驟

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

    在工作中遇到需要前端上傳excel文件獲取到相應數(shù)據(jù)處理之后傳給后端并且展示上傳文件的數(shù)據(jù),所以本文就來給大家介紹一下Vue中導入并讀取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)常會涉及到表格的列合并,包括表格操作列的合并,下面這篇文章主要給大家介紹了關于el-table表格動態(tài)合并行及合并行列的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • VUE項目實現(xiàn)主題切換的多種方法

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

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

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

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

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

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

最新評論

德昌县| 亳州市| 滁州市| 甘德县| 靖安县| 石狮市| 卓尼县| 灌阳县| 襄樊市| 玉山县| 东阿县| 正蓝旗| 迭部县| 涟源市| 伊金霍洛旗| 图片| 绥德县| 夏河县| 阳谷县| 东丰县| 亚东县| 吉安市| 通许县| 河东区| 郁南县| 齐齐哈尔市| 泽普县| 奎屯市| 军事| 武汉市| 沙河市| 邓州市| 叶城县| 盖州市| 乐山市| 廊坊市| 莲花县| 永川市| 武功县| 铜陵市| 石渠县|