首页 > 其他分享 >网络直播平台搭建,瀑布流布局完美解决方案

网络直播平台搭建,瀑布流布局完美解决方案

时间:2024-08-24 09:16:09浏览次数:5  
标签:goodsLeftListHeight listData 解决方案 goodsListCount 直播 goodsRightListHeight push 搭建

网络直播平台搭建,瀑布流布局完美解决方案

使用教程

直接复制代码 列表布局数据自己写

<template>
  <view class="waterfall-wrap">
    <view class="waterfall-list">
      <view class="left">
        <hd-list
          :listData="item"
          v-for="(item,index) in goodsLeftList"
          :key="index"
          @onImageLoad="onImageLoad"
        ></hd-list>
      </view>
      <view class="right">
        <hd-list
          :listData="item"
          v-for="(item,index) in goodsRightList"
          :key="index"
          @onImageLoad="onImageLoad"
        ></hd-list>
      </view>
    </view>
  </view>
</template>

 

<script>
import hdList from "../component/hd-list.vue";
export default {
  name: "waterfall",
  props: {
    listData: {
      type: Array,
      default: []
    }
  },
  components: {
    hdList
  },
  watch: {
    /**
     * 监听listData数据
     */
    listData: {
      handler: function(data) {
        data.length > 0 && this.waterfallImage();
      },
      immediate: true
    }
  },
  data() {
    return {
      goodsListCount: 0, //加载第i张图片
      // 左侧商品列表
      goodsLeftList: [],
      goodsLeftListHeight: 0,
      // 右侧商品列表
      goodsRightList: [],
      goodsRightListHeight: 0
    };
  },
  methods: {
    // 图片绑定事件,通过比较左右列表高度,实现瀑布流展示
    onImageLoad: function(e) {
      let divWidth = 342; //显示的单栏宽度,我设为342rpx
      let oImgW = e.detail.width; //图片原始宽度
      let oImgH = e.detail.height; //图片原始高度
      let rImgH = (divWidth * oImgH) / oImgW + 32; //根据宽高比计算当前载入的图片的高度
      if (this.goodsListCount == 0) {
        this.goodsLeftListHeight += rImgH; //第一张图片高度加到goodsLeftListHeight
        this.goodsListCount++; //图片索引加1
        this.goodsRightList.push(this.listData[this.goodsListCount]); //添加第二张图片到goodsRightList数组,因为第一张已经初始化到左侧列表中
      } else {
        this.goodsListCount++; //图片索引加1
        if (this.goodsLeftListHeight > this.goodsRightListHeight) {
          //把图片的高度加到目前高度更低的栏中
          this.goodsRightListHeight += rImgH; //第二张图片高度加到goodsRightListHeight
        } else {
          this.goodsLeftListHeight += rImgH;
        }

        if (this.goodsListCount < this.listData.length) {
          //根据目前的栏高,把下一张图片,push到低的那栏
          if (this.goodsLeftListHeight > this.goodsRightListHeight) {
            this.goodsRightList.push(this.listData[this.goodsListCount]);
          } else {
            this.goodsLeftList.push(this.listData[this.goodsListCount]);
          }
        }
      }
    },
    // 向商品列表添加第一张图片
    async waterfallImage() {
      this.goodsListCount = 0;
      this.goodsLeftList.push(this.listData[0]);
    }
  }
};
</script>

 

兼容性

uni-app项目中使用都兼容

以上就是网络直播平台搭建,瀑布流布局完美解决方案, 更多内容欢迎关注之后的文章

 

标签:goodsLeftListHeight,listData,解决方案,goodsListCount,直播,goodsRightListHeight,push,搭建
From: https://www.cnblogs.com/yunbaomengnan/p/18377370

相关文章

  • 向量数据库Faiss的搭建与使用|Faiss|向量数据库|高效检索|机器学习|大规模数据
    目录1.Faiss概述1.1Faiss的背景与重要性1.2Faiss的基本概念与特点2.Faiss的安装与环境配置2.1环境要求2.2Faiss的安装2.3验证安装3.Faiss的基本使用3.1创建索引与添加向量3.2执行查询3.3向量的压缩与内存优化4.Faiss的高级功能与优化4.1GPU加速与多G......
  • 关于对 Tomcat 进行小版本升级的快速解决方案
    1、背景描述原来的Tomcat在部署时,使用的是最新的版本9.0.40。经过一段时间后,在原来的Tomcat版本中,发现存在漏洞。因此,需要将旧版本(9.0.40)升级到没有漏洞的新版本(9.0.93)。2、查看Tomcat的版本信息如上图所示,在tomcat的bin目录下打开cmd窗口,运行version.bat程序......
  • 网站搭建
    第一步,服务器申请选择一:免费云服务器,免费虚拟主机如:阿贝云阿贝云提供了免费的云服务器和免费的云虚拟主机,可根据自己的实际应用情况选择。首先注册一个账户,然后需要支付0.3元做一个实名认证,如果实名认证成功了大概率会开通成功。如果失败了可能是服务器资源池不够,所......
  • 游戏不卡顿,vcomp140.dll来助力——《真三国无双8:帝国》缺失文件解决方案
    《真三国无双8:帝国》作为一款大型游戏,其流畅运行依赖于各种系统文件和库文件的完整与正确。当游戏中出现“vcomp140.dll”文件缺失的问题时,确实会导致游戏卡顿甚至无法启动。以下是一些解决《真三国无双8:帝国》中vcomp140.dll文件缺失问题的方案:一、直接下载并替换vcomp140.d......
  • 智慧园区:AI赋能下的创新应用场景探索及多场景解决方案介绍
    随着人工智能(AI)技术的飞速发展,各行各业都在经历着前所未有的变革,智慧园区作为城市智慧化建设的重要组成部分,正逐步成为AI技术应用的热土。智慧园区通过集成物联网、大数据、云计算、人工智能等先进技术,实现了园区管理、运营、服务等多个环节的智能化升级,为入驻企业及管理者带来了......
  • WebRTC支持H.265编码:技术挑战与EasyCVR视频汇聚平台解决方案
    随着互联网技术的快速发展,视频通信已成为人们日常生活和工作中不可或缺的一部分。WebRTC(WebReal-TimeCommunication)作为一种实时通信技术,因其便捷性和高效性而受到广泛关注。然而,在视频编码格式上,WebRTC原生并不支持H.265(也称为HEVC,HighEfficiencyVideoCoding),这在一定程度上......
  • 【openwrt-21.02】openwrt-21.02 T750 switch划分VLAN之后WAN口MAC地址和br-lan相同问
    Openwrt版本NAME="OpenWrt"VERSION="21.02-SNAPSHOT"ID="openwrt"ID_LIKE="ledeopenwrt"PRETTY_NAME="OpenWrt21.02-SNAPSHOT"VERSION_ID="21.02-snapshot"HOME_URL="https://openwrt.org/"BU......
  • 在Centos7上搭建EMQX服务
    一、安装Docker:安装包下载地址:Indexoflinux/static/stable/x86_64/1.1在Centos7进行安装前,可以使用以下命令查看CentOS版本。cat/etc/redhat-release1.2在CentOS7安装docker要求系统为64位、系统内核版本为3.10以上。uname-r2.1查看是否已安装docker列表......
  • Kubernetes 1.28.2 负载均衡解决方案 MetalLB实践
    MetalLB是一个用于在Kubernetes集群中提供外部IP地址的负载均衡器实现。安装须知:Kubernetesv1.13.0或者更新的版本规划IPv4地址给MetalLB用于分配。当使用BGP操作模式时,你将需要一个或多个能够支持BGP协议的路由器。L2模式下需要各个节点间7946端口(TCP&......
  • 海外商城海跨境电商APP定制开发多国语音定制app源码搭建
    海外商城App的开发是一个复杂而系统的工程,‌涉及多个阶段和注意事项。‌以下是一个详细的海外商城App开发流程和注意事项:‌开发流程1.‌需求确定‌:‌明确应用程序的目标,‌确定App要解决的具体问题,‌以及面向的用户群体。‌与客户进行深入的洽谈沟通,‌了解App的开发内容......