当前位置: 首页 > news >正文

uniapp中实现瀑布流 短视频页面展示

直接上干货
第一部分为结构

<swiper class="list" :current='index' @change="swiperchange" @scrolltolower="onReachBottom"><swiper-item style="overflow: scroll;" v-for="(item,index) in 2" :key="index"><view v-for="(item,index) in list " class="list_item" :style="{'--top2':item.top+'px','--left':item.left}"><view class="" style="background: rgba(0, 0, 0, 0.5);"><view class=""><!-- <image class="fm" src="https://api.ccttiot.com/smartmeter/img/static/uGUX2rY4w3ZPvRhrKpWw" mode=""> --><image class="fm" :src="item.url" mode="widthFix"></image></view><view class="wz"><view class="title">的故事吧概念啊啊啊啊啊啊啊</view><view class="xx"><image class="tx" src="https://api.ccttiot.com/smartmeter/img/static/u8HN5WcA04XMKLsMnr2P"mode=""></image><view class="username">皮蛋瘦肉...</view><image class="sc" src="https://api.ccttiot.com/smartmeter/img/static/uQJ3tBEKEmeC4jexhNgK"mode=""></image><view class="dz">3056</view></view></view></view><view class="kong" style="width: 100%;height: 20rpx;background-color: transparent;"></view></view></swiper-item></swiper>

第二部分为样式
 

		.list {width: 100%;margin-top: 36rpx;display: flex;justify-content: space-between;padding-right: 36rpx;flex-wrap: wrap;height: 80vh;overflow: scroll;box-sizing: border-box;position: relative;.list_item:last-of-type{padding-bottom: 200rpx;}.list_item {width: 326rpx;box-sizing: border-box;margin-top: 22rpx;overflow: hidden;margin-left: 34rpx; break-inside: avoid;position: absolute;// 设置为变量top: var(--top2);left: var(--left);.fm {width: 100%;height: 326rpx;border-radius: 10rpx;object-fit: cover;}.wz {padding: 18rpx 16rpx;padding-top: 0 !important;box-sizing: border-box;.title {font-size: 28rpx;color: #FFFFFF;margin-top: 10rpx;text-align: left;}.xx {display: flex;margin-top: 12rpx;align-items: center;.tx {width: 32rpx;height: 32rpx;border-radius: 50%;margin-right: 10rpx;}.username {font-size: 24rpx;color: #FFFFFF;margin-right: 16rpx;}.sc {width: 25rpx;height: 24rpx;margin-right: 8rpx;}.dz {font-size: 24rpx;color: #FFFFFF;}}}}}

第三部分为js部分
 

export default {data() {return {AllData: [],leftHeight: 0,rightHeight: 0,list: [{url: "https://api.ccttiot.com/smartmeter/img/static/ur3ZXP3az10GilTm9nOV",left: "50%",top: "0",}, {url: "https://api.ccttiot.com/smartmeter/img/static/uFo3Rj5OC6S3h0RNaZqf",left: "50%",top: "0",}, {url: "https://api.ccttiot.com/smartmeter/img/static/ur3ZXP3az10GilTm9nOV",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/u8HN5WcA04XMKLsMnr2P",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/uZQmeK9Fp2oHAnu3Yc3U",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/uGUX2rY4w3ZPvRhrKpWw",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/uZQmeK9Fp2oHAnu3Yc3U",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/u8HN5WcA04XMKLsMnr2P",left: "50%",top: "0",},{url: "https://api.ccttiot.com/smartmeter/img/static/uFo3Rj5OC6S3h0RNaZqf",left: "50%",top: "0",},],}},onLoad() {//在页面一开始就获取数据进行操作setTimeout(() => {uni.createSelectorQuery().selectAll('.list_item').boundingClientRect(data => {data.forEach((item) => {this.AllData.push(item.height)})for (let i = 0; i < this.AllData.length; i++) {// 判断赋值if (this.rightHeight < this.leftHeight) {// 设置位置this.list[i].left = '50%'// 先进行赋值this.list[i].top = this.rightHeight// 再进行累加this.rightHeight += this.AllData[i]} else {this.list[i].left = 0this.list[i].top = this.leftHeightthis.leftHeight += this.AllData[i]}}}).exec()}, 500)},methods: {swiperchange(e){console.log(e.target.current);this.index = e.target.current},}}
</script>

最后附上效果图  当中我所使用的图片均为线上图片  

相关文章:

  • python3递归目录删除N天前的文件(带有日志记录)
  • RabbitMQ中java实现队列和交换机的声明
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • 大数据面试题之HBase(1)
  • LabVIEW遇到无法控制国外设备时怎么办
  • 学生管理系统
  • Langchain-实战篇-搭建本地问答机器人-01
  • Linux下QT程序启动失败问题排查方法
  • 生产环境 CentOS 7 k8s v1.28.0离线部署
  • 人工智能 (AI) 进阶【C#】版
  • pom.xml文件加载后没有变成maven图标
  • mysql 连接出现 Public Key Retrieval is not allowed
  • Android自动化测试实践:uiautomator2 核心功能与应用指南
  • 学习伦敦金技术分析的具体步骤是什么?
  • 第10天:字典和集合任务
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 230. Kth Smallest Element in a BST
  • Android单元测试 - 几个重要问题
  • IDEA常用插件整理
  • IP路由与转发
  • java8 Stream Pipelines 浅析
  • Koa2 之文件上传下载
  • spring boot 整合mybatis 无法输出sql的问题
  • 对超线程几个不同角度的解释
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 简单数学运算程序(不定期更新)
  • 警报:线上事故之CountDownLatch的威力
  • 微信小程序设置上一页数据
  • 仓管云——企业云erp功能有哪些?
  • ​用户画像从0到100的构建思路
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (HAL库版)freeRTOS移植STMF103
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (算法)Travel Information Center
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)Oracle存储过程编写经验和优化措施
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***测试-HTTP方法
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .Net Remoting常用部署结构
  • .Net程序帮助文档制作
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • .skip() 和 .only() 的使用
  • [C++]C++入门--引用
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [CLR via C#]11. 事件
  • [CTO札记]盛大文学公司名称对联
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [hdu4622 Reincarnation]后缀数组
  • [javaSE] 看知乎学习工厂模式
  • [JavaWeb玩耍日记]Maven的安装与使用