接口懒加载,滚动条滚到底部,请求接口增加数据

handleScroll () {
   // 变量scrollTop是滚动条滚动时,距离顶部的距离
   const scrollTop = document.documentElement.scrollTop || document.body.scrollTop
   // 变量windowHeight是可视区的高度
   const windowHeight = document.documentElement.clientHeight || document.body.clientHeight
   // 变量scrollHeight是滚动条的总高度
   const scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight
    // 滚动条到底部的条件
    if (this.Iswhole) {
      // 只有全部分类页面才能加
      if (scrollTop + windowHeight + 1 >= scrollHeight) {
        this.throttle(this.LazyfindInventoryList(), 2000)
       // 你想做的事情
      }
    }
    },
  // 节流
    throttle (action, delay, context, iselapsed = true) {
  let timeout = null
  let lastRun = 0
  return function () {
    if (timeout) {
      if (iselapsed) {
        return
      } else {
        clearTimeout(timeout)
        timeout = null
      }
    }
    const elapsed = Date.now() - lastRun
    const args = arguments
    if (iselapsed && elapsed >= delay) {
      runCallback()
    } else {
      timeout = setTimeout(runCallback, delay)
    }
    /**
     * 执行回调
     */
    function runCallback () {
      lastRun = Date.now()
      timeout = false
      action.apply(context, args)
    }
  }
},

完整


 mounted () {
     addEventListener('scroll', this.handleScroll)// 监听函数
     },
  methods: {
    float2numFormat,
    // 创建使用帮助通知
    handleScroll () {
   // 变量scrollTop是滚动条滚动时,距离顶部的距离
   const scrollTop = document.documentElement.scrollTop || document.body.scrollTop
   // 变量windowHeight是可视区的高度
   const windowHeight = document.documentElement.clientHeight || document.body.clientHeight
   // 变量scrollHeight是滚动条的总高度
   const scrollHeight = document.documentElement.scrollHeight || document.body.scrollHeight
    // 滚动条到底部的条件
    if (this.Iswhole) {
      // 只有全部分类页面才能加
      if (scrollTop + windowHeight + 1 >= scrollHeight) {
        this.throttle(this.LazyfindInventoryList(), 2000)
       // 你想做的事情
      }
    }
    },
    // 节流
(action, 是回调函数,delay, 是时间,context, this,iselapsed 判断是否到时间了
    throttle (action, delay, context, iselapsed = true) {
  let timeout = null
  let lastRun = 0
  return function () {
    if (timeout) {
      if (iselapsed) {
        return
      } else {
        clearTimeout(timeout)
        timeout = null
      }
    }
    const elapsed = Date.now() - lastRun
    const args = arguments
    if (iselapsed && elapsed >= delay) {
      runCallback()
    } else {
      timeout = setTimeout(runCallback, delay)
    }
    /**
     * 执行回调
     */
    function runCallback () {
      lastRun = Date.now()
      timeout = false
      action.apply(context, args)
    }
  }
},
要执行的参数
    LazyfindInventoryList () {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值