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

Vue 無限滾動(dòng)加載指令實(shí)現(xiàn)方法

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

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

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

一、獲取滾動(dòng)條位置

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é)點(diǎn)綁定滾動(dòng)事件

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

最后直接給根節(jié)點(diǎn)HTML綁定滾動(dòng)事件。

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);
      }
    };
  }
})();

三、注冊(cè)全局指令

/**
 * 降低事件執(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ā)頻率
      }
    })
  }
});

四、實(shí)例:

<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 無限滾動(dòng)加載指令實(shí)現(xiàn)方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 淺談VUE監(jiān)聽窗口變化事件的問題

    淺談VUE監(jiān)聽窗口變化事件的問題

    下面小編就為大家分享一篇淺談VUE監(jiān)聽窗口變化事件的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 如何使用vite搭建vue3項(xiàng)目詳解

    如何使用vite搭建vue3項(xiàng)目詳解

    Vite 是一個(gè)面向現(xiàn)代瀏覽器的更輕,更快的web應(yīng)用開發(fā)工具,下面這篇文章主要給大家介紹了關(guān)于如何使用vite搭建vue3項(xiàng)目的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • .html頁面引入vue并使用公共組件方式

    .html頁面引入vue并使用公共組件方式

    這篇文章主要介紹了.html頁面引入vue并使用公共組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 深入淺出vue圖片路徑的實(shí)現(xiàn)

    深入淺出vue圖片路徑的實(shí)現(xiàn)

    這篇文章主要介紹了深入淺出vue圖片路徑的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Vue3.0 自己實(shí)現(xiàn)放大鏡效果案例講解

    Vue3.0 自己實(shí)現(xiàn)放大鏡效果案例講解

    這篇文章主要介紹了Vue3.0 自己實(shí)現(xiàn)放大鏡效果案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • vue.js通過自定義指令實(shí)現(xiàn)數(shù)據(jù)拉取更新的實(shí)現(xiàn)方法

    vue.js通過自定義指令實(shí)現(xiàn)數(shù)據(jù)拉取更新的實(shí)現(xiàn)方法

    數(shù)據(jù)拉取更新這個(gè)功能相信大家基本都見過,但是如果要做起來卻不止如何做起,所以這篇文章給大家分享了vue.js通過自定義指令實(shí)現(xiàn)的方法,閱讀本文需要對(duì)vue有一定理解,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Vue input輸入框中的值如何變成黑點(diǎn)問題

    Vue input輸入框中的值如何變成黑點(diǎn)問題

    這篇文章主要介紹了Vue input輸入框中的值如何變成黑點(diǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解Vue項(xiàng)目部署遇到的問題及解決方案

    詳解Vue項(xiàng)目部署遇到的問題及解決方案

    這篇文章主要介紹了詳解Vue項(xiàng)目部署遇到的問題及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • vue監(jiān)聽滾動(dòng)事件的方法

    vue監(jiān)聽滾動(dòng)事件的方法

    這篇文章主要介紹了vue監(jiān)聽滾動(dòng)事件的方法,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下
    2020-12-12
  • 詳解vue微信網(wǎng)頁授權(quán)最終解決方案

    詳解vue微信網(wǎng)頁授權(quán)最終解決方案

    這篇文章主要介紹了 詳解vue微信網(wǎng)頁授權(quán)最終解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06

最新評(píng)論