zoukankan      html  css  js  c++  java
  • vue列表鼠标滚动翻页(数据量较大,几千万条数据,因此要滚动翻页,为了性能良好,鼠标滚动时发送请求页码page++),网上找不到自己写了一个,

    标题 :vue列表鼠标滚动翻页(数据量较大,几千万条数据,因此要滚动翻页,为了性能良好,鼠标滚动时发送请求页码page++),网上找不到自己写了一个,如果用window. 或document.body会导致滚动穿透,导致如果多个页面要用到滚动翻页时,会发送其他页面的ajax或axios

    1.先在要滚动的div上自定义名称 ref=“scrolltoplist”

    <div ref="scrolltoplist" class="scrolltoplist"></ div>
    

    2.监听绑定滚轮,滚动事件,调用自定义的this.handleScroll方法

      mounted() {
        this.$refs.scrolltoplist.addEventListener(
          "scroll",
          this.handleScroll,
          true
        );
        // 监听(绑定)滚轮 滚动事件
      },
    

    3.自定义方法计算滚动时发送请求
    scrollTop滚动距离顶部的高度,
    lientHeight文档的高度 不包括,
    scrollHeight 滚动的高度

    handleScroll() {
    // scrollTop滚动距离顶部的高度
    // clientHeight文档的高度 不包括
    // scrollHeight 滚动的高度
          if (
            this.$refs.scrolltoplist.scrollTop +
              this.$refs.scrolltoplist.clientHeight >=
            this.$refs.scrolltoplist.scrollHeight - 50
          ) {
            console.log("down");
            if (this.count >= this.pageNo * 60) {
              this.loading2 = true;
              this.loadData();
            } else {
              return false;
            }
          } else {
            console.log("error");
            return false;
          }
     }
    

    loadData() {
      this.pageNo = this.pageNo + 1;
      this.getUserList();
    },
    

    4.写到这里想写一下,在app中下拉加载(浏览器中不那么容易出现),当数据过多造成页面元素过多,导致内存增加,这个问题就会导致页面滑动变卡顿
    答:无限滑动的卡片,做法是只显示三个,其他的移除掉,需要时再加载。

  • 相关阅读:
    STL
    Python
    Swift学习笔记
    Swift学习笔记
    Cocos2d-x -- 如何让背景从上到下滚动
    Cocos2d-x -- 图片菜单按钮
    How to change in the Cocos2d-x project from landscape to portrait both in iOS and Android
    系统集成项目管理工程师和信息系统管理工程师的区别是什么?
    公积金取出来后悔了 公积金取出来好还是不取好?
    青岛公积金贷款额度最高多少?怎么算?
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12526208.html
Copyright © 2011-2022 走看看