我的编程空间,编程开发者的网络收藏夹
学习永远不晚

js实现瀑布流触底动态加载数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

js实现瀑布流触底动态加载数据

本文实例为大家分享了js实现瀑布流触底动态加载数据的具体代码,供大家参考,具体内容如下



// onScrollEvent 滚动条事件
<div class="box" ref="box" @mousewheel="onScrollEvent">
    //每一个方块内的内容start
      <div class="boxItemStyle" v-for="(userTag, i) in dataSource" :key="i" ref="boxItemStyle">
        <a-tag class="moreStyle" @click="more(userTag.primaryParam)"> 更多></a-tag>
        <div v-for="item in userTag.userTag" :key="item.code">
          <p>
            <span style="text-align: left"> {{ item.name }}:</span>
            <span style="text-align: right">{{ item.value }}</span>
          </p>
        </div>
      </div>
      //每一个方块内的内容end
</div>

瀑布流布局


waterFall () {
  //减去边距的宽度
      var pageWidth = this.$refs.box.offsetWidth - 200
      var columns = 4; //定义一行4列
      var itemWidth = parseInt(pageWidth / columns);
      var arr = [];
      var nodes = document.getElementsByClassName("boxItemStyle")
      setTimeout(() => {
        //var node1 = Array.from(nodes)
       // var node2 = Array.prototype.slice.call(nodes)
        for (var i = 0; i < nodes.length; i++) {
          nodes[i].style.width = itemWidth + "px"
          if (i < columns) {
            nodes[i].style.width = itemWidth + "px"
            nodes[i].style.left = itemWidth * i + i * 50 + "px"
            nodes[i].style.top = 0
            arr.push(nodes[i].offsetHeight);
          } else {
            // 找到数组中最小高度  和 它的索引
            var minHeight = arr[0];
            var index = 0;
            for (var j = 0; j < arr.length; j++) {
              if (minHeight > arr[j]) {
                minHeight = arr[j];
                index = j;
              }
            }
            nodes[i].style.top = arr[index] + 30 + "px",
              nodes[i].style.left = nodes[index].offsetLeft + 'px';
            //  修改最小列的高度
            // 最小列的高度 = 当前自己的高度 + 拼接过来的高度
            arr[index] = arr[index] + nodes[i].offsetHeight + 30;//设置30的距离
          }
        }
      }, 1000)
    },

动态加载数据


onScrollEvent () {
      if (
        this.isScroll &&
        this.$refs.box.scrollHeight - this.$refs.box.scrollTop -this.$refs.box.clientHeight <= 0
      ) {
        this.loading = true
        if (this.ipagination.current == 1) {
          this.ipagination.current += 1
        }
        let param = {}
        param['pageNo'] = this.ipagination.current
        param['pageSize'] = this.ipagination.pageSize
        param['portraitId'] = this.portraitId
        postAction(this.url.list, { ...param }).then((res) => {
          this.loading = false
          if (res.success) {
            this.isScroll = res.records
            this.dataSource = this.dataSource.concat(res.result.records || res.result)
            this.waterFall();
          }
        })
        this.ipagination.current++
      }
    },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

js实现瀑布流触底动态加载数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Ajax如何实现动态加载数据

这篇文章给大家分享的是有关Ajax如何实现动态加载数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.这个随笔实现了一个Ajax动态加载的例子。2.使用.net 的MVC框架实现。3.这个例子重点在前后台交互,
2023-06-08

Android实现ListView数据动态加载的方法

本文实例讲述了Android实现ListView数据动态加载的方法。分享给大家供大家参考,具体如下:list.setOnScrollListener(new OnScrollListener() { //添加滚动条滚到最底部,加载余下的元素
2022-06-06

RecyclerChart动态属性图标联动数据动态加载怎么实现

本篇内容介绍了“RecyclerChart动态属性图标联动数据动态加载怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!图表联动类似于股
2023-07-05

javascript下拉框动态加载数据怎么实现

可以使用Ajax技术来实现JavaScript下拉框动态加载数据。步骤如下:1. 定义一个下拉框元素,例如:```html```2. 使用JavaScript代码获取该下拉框元素,并定义一个函数来动态加载数据,例如:```javascrip
2023-05-30

利用Java如何实现动态加载数据库驱动

利用Java如何实现动态加载数据库驱动?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码实现在此只例出核心代码,就是动态加载数据库驱动的类,只是此处暂时没有考虑到数据库连接池的
2023-05-31

Android实现listview动态加载数据分页的两种方法

在android开发中,经常需要使用数据分页,比如要实现一个新闻列表的显示,或者博文列表的显示,不可能第一次加载就展示出全部,这就需要使用分页的方法来加载数据,在android中Handler经常用来在耗时的工作中,它接收子线程发送的数据,
2022-06-06

layui table如何结合后端API实现数据动态加载?(layui table与后端API的数据实时加载策略)

layuitable结合后端API实现数据动态加载,通过发送异步请求从后端获取数据,利用layuitableAPI解析和加载响应数据。通过定义URL、方法和参数向后端发送异步请求,处理后端响应并将其加载到layuitable中。layuitable提供reload、setCols、page、limit和done方法用于动态加载数据。优化策略包括分页、缓存、懒加载和服务端渲染,提高性能和用户体验。通过结合后端API,layuitable能够支持实时数据更新,保持客户端与后端同步,并灵活集成各种后端技术。
layui table如何结合后端API实现数据动态加载?(layui table与后端API的数据实时加载策略)
2024-04-02

如何通过php接口和ECharts实现统计图的数据动态加载

如何通过PHP接口和ECharts实现统计图的数据动态加载【引言】随着数据可视化越来越受到企业和开发者的重视,统计图的应用越来越广泛。ECharts作为一款开源的JavaScript图表库,提供了丰富的图表类型和交互手段,结合PHP接口,可
如何通过php接口和ECharts实现统计图的数据动态加载
2023-12-17

编程热搜

目录