uniapp-轮播图swiper根据内容图片高度自适应,解决获取图片高度不准确的问题

需求:轮播图swiper根据内容图片高度自适应

但是通过uniapp uni.createSelectorQuery的方法获取图片高度不正确,比如图片是100,获取是200,this.$nextTick也不能解决,setTimeout到是能解决,但是不稳定,有时200ms能正确,有时不能,再设置久一点,用户体验不好,图片等待时间太久了

研究了一下,图片加载完成时间@load里,也能e.detail.height获取图片高度,但返回的图片高度还是不正确,太坑了,但load里再使用uni.createSelectorQuery的方法获取图片高度则正确了

<template><swiper class="swiper" @change="viewChange" :autoplay="true" circular :indicator-dots="false" v-if="imgsList.length" :style="[{ height: swiperHeight + 'px' }]"><swiper-item v-for="item in imgsList" :key="item.id"><view class="swiper-item uni-bg-red" @click="clickBreak(item)"><image :src="item.clientFileUrl" mode="widthFix" class="img" @load="loadImg"></image></view></swiper-item></swiper>
</template><script>
export default {name: 'swiperImg',props: {imgsList: Array,},data() {return {swiperHeight: 0,current: 0,};},methods: {loadImg() {this.getCurrentSwiperHeight('.img');},// 轮播切换viewChange(e) {this.current = e.target.current;this.getCurrentSwiperHeight('.img');},// 动态获取内容高度getCurrentSwiperHeight(element) {let query = uni.createSelectorQuery().in(this);query.selectAll(element).boundingClientRect();query.exec((res) => {// 切换到其他页面swiper的change事件仍会触发,这时获取的高度会是0,会导致回到使用swiper组件的页面不显示了if (this.imgsList.length && res[0][this.current].height) {this.swiperHeight = res[0][this.current].height;}});},},
};
</script><style lang="scss" scoped>
.swiper {padding: 0 20rpx;margin-top: 5px;margin-bottom: 1px;border-radius: 4px 4px 4px 4px;.swiper-item {width: 100%;image {width: 100%;}}
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeFi新篇章 | Sui上原生订单簿DeepBook正式上线

随着原生去中心化中央限价订单簿&#xff08; Central Limit Order Book&#xff0c;CLOB&#xff09;DeepBook的推出&#xff0c;Sui上的DeFi开启了新篇章。DeepBook由一群Sui贡献者共同构建&#xff0c;为新一代DeFi应用提供了一个稳定的流动性层。 通过DeepBook&#xff0c…

Kubernetes在数字化转型中的作用

Kubernetes在数字化转型中的作用 数字化转型是指在现代化社会中&#xff0c;利用数字技术来改变企业、组织或个人的业务模式、流程和价值创造方式的过程。这包括使用数字技术来提高效率、创新产品或服务、优化客户体验和开发新的业务模式等方面。数字化转型是一个全球性的趋势…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄&#xff1f;很多小伙伴通过私信向我求助&#xff0c;用什么方法可以在mac电脑上批量修改文件名称&#xff0c;将大量文件修改成不同的名称。这可能是一项比较麻烦的操作&#xff0c;在电脑上进行过批量重命名的小伙伴都知道&#xff0c;一般…

Redis源码篇 - Reactor设计模式 和 Redis Reactor设计模式

Reactor &#xff1a;反应器模式或者应答者模式&#xff0c;它是一种基于事件驱动的设计模式。拥有一个或者多个输入源&#xff0c;通过反应器分发给多个worker线程处理&#xff0c;实现并发场景下事件处理。 此图网上找的&#xff0c;画的很好&#xff1a;

【Javascript】根据表达式(可字符串)过滤数组

正在实现一个基于后台低代码配置的应用&#xff0c;记录一下字符串表达式在项目用的转换与使用。以下是使用表达式过滤数据的实践代码: 表达式如下 item.readFlag1封装使用函数 /*** 获取表格数据* param array 被过滤的数组 * param expression 表达式*/ function filterAr…

C# 抽象类和接口详解

参考视频链接&#xff1a;https://www.bilibili.com/video/BV13b411b7Ht?p27&vd_source10065785c7e10360d831474364e0d3e3 代码的进化与重构&#xff0c;从基本代码的讲解到逐步抽象成抽象类和接口。 文章目录 最初定义利用继承改进对方法进一步改进利用虚函数进行改进利…

如何设计光场2.0(聚焦型光场相机)系统参数

1. 系统参数设计 目前的硬件系统的现状&#xff1a;主透镜50mm&#xff0c;MLA&#xff1a;15*15&#xff0c;d0.5mm&#xff0c;f15mm&#xff0c;s4.8um 开普勒型光场系统&#xff1a; 首先我们需要确定系统的M&#xff0c;M参数表示单个位置的点能被多少个小微透镜成像&am…

【YOLO】部署与推理

【YOLO】部署与推理 文章目录 【YOLO】部署与推理前言一、YOLO 的发展历史?一、YOLOv5 是什么?二、YOLOv5型号选择三、YOLOv5 推理1. 下载源代码2. 安装依赖2. 执行推理总结前言 目前YOLO最新的对象检测模型系列,最新版已经发展到YOLOv8, YOLOV8模型更快、更准确,具有实例…

python3GUI--仿win10任务管理器By:PyQt5(附UI源码)

文章目录 一&#xff0e;前言二&#xff0e;展示1.主界面1.进程2.性能1.CPU2.内存 3.简略信息4.详细信息5.新建任务 三&#xff0e;设计思路1.UI设计1.主界面1.进程2.性能3.详细信息4.新建任务5.图表信息组件 2.代码整体设计1.项目设计心得2.项目设计其他心得 3.其他心得 四&am…

Minecraft 1.20.x Forge模组开发 01.Idea开发环境配置

我们本次来进行Minecraft 1.20.x 模组开发环境配置教程的介绍。 效果演示 效果演示 效果演示 1.首先我们需要下载Java17和1.20模组开发包: Java17下载官网

智安网络|保护数据资产:不同行业下的数据安全建设策略

在当今数字化时代&#xff0c;数据安全已经成为各行各业无法忽视的重要议题。保持良好网络卫生习惯并及时了解不断变化的网络威胁是企业中每个人的责任。企业、政府机构、医疗机构、金融机构以及其他组织和行业都面临着日益复杂和频繁的网络安全威胁。为了有效应对这些威胁&…

JVM系统优化实践(20):GC生产环境案例(三)

您好&#xff0c;这里是「码农镖局」CSDN博客&#xff0c;欢迎您来&#xff0c;欢迎您再来&#xff5e; 某新手开发工程师接到了一个保存Elasticsearch日志的任务&#xff0c;以供后续分析之用。但写代码的时候&#xff0c;误将保存日志的代码段弄成了无限循环&#xff0c;程序…

面试题 02.07. 链表相交

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#x…

24 MFC文档串行化和单文档应用程序

文章目录 文档串行化全部代码 单文档应用程序搭建原理搭建框架Win32 过度到MFC 三部曲设置ID资源全部代码 单文档应用程序设置标题绘图 简单的管理系统部分代码 文档串行化 ui 设计 保存 void CfileDemoDlg::OnBnClickedBtnSave() {UpdateData();//CFile file(L"Demo.dat…

基于MATLAB的无人机遥感数据预处理与农林植被性状估算教程

详情点击链接&#xff1a;基于MATLAB的无人机遥感数据预处理与农林植被性状估算前言 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势&#xff0c;是智慧农业必须采…

如何成功地搭建属于自己的游戏平台?

成功搭建自己的游戏平台需要考虑以下关键步骤&#xff1a; 市场研究&#xff1a;进行市场调研&#xff0c;了解游戏行业的趋势和竞争状况&#xff0c;确定目标受众和市场定位。 制定商业计划&#xff1a;根据市场研究结果&#xff0c;制定详细的商业计划&#xff0c;包括目标…

UML 图

统一建模语言&#xff08;Unified Modeling Language&#xff0c;UML&#xff09;是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML 从目标系统的不同角度出发&#xff0c;定义了用例图、类图、对象图、状态图、活动图…

深度学习中的IR

在深度学习中&#xff0c;IR&#xff08;Intermediate Representation&#xff0c;中间表示&#xff09;是一种用于表示深度学习模型的中间形式。它可以用计算图的形式来表示神经网络模型的结构和计算过程。下面将详细介绍深度学习中的IR的作用、特点和常见的表示格式。 作用 …

java贪心算法案例

1.零钱找回问题 这个问题在我们的日常生活中就更加普遍了。假设1元、2元、5元、10元、20元、50元、100元的纸币分别有c0, c1, c2, c3, c4, c5, c6张。现在要用这些钱来支付K元&#xff0c;至少要用多少张纸币&#xff1f;用贪心算法的思想&#xff0c;很显然&#xff0c;每一步…

大语言模型中一个调皮的EOS token

背景 最近需要做一个微调的培训&#xff0c;所以不可避免地需要上手一下相关的微调&#xff0c;而受限于机器资源&#xff0c;暂时没法做全参数微调&#xff0c;所以就尝试了目前比较火的两种高效微调方式&#xff0c;分别是PTuning和LoRA。模型选择得自然是现在中文做的比较好…