【bug】uniapp的image组件渲染gif图,只有第一次点击的时候有动效,需要每次点击都有gif效果,已解决

前两天遇到的问题,暂时没有解决,就搁置了。

不解决又难受,还好今天解决了,记录下

需求:

两个gif图,分别代表点击之后的男生和女生,并且有两个静态的男生和女生图片

当男生静态图被点击的时候切换男生的gif图,女生静态图被点击的时候切换女生的gif图

主要就是根据动态变量控制静态图和gif的图切换,但是来回多点击几次后发现,只有第一次从静态图切换到gif图的时候,才有gif的动态效果

然后才知道,原来在uni-app中使用image组件展示gif图片的时候,通常会遇到只有第一次点击时有动态效果,第二次点击不展示的问题。这是因为image组件默认会对同一个src地址的图片进行缓存,导致第二次点击时直接从缓存中读取,而不会重新加载图片。

解决思路就是:每次点击的图片链接地址加上一个随机参数,强制让image组件去重新加载图片

我这里是vue3的写法,只是写法不同,实现效果一样的

bash 复制代码
			<view class="chose-sex-image">
				<view @click="choseSex('boy')" >			
					<image v-if="data.isStaticBoy" src="静态boy图片路径.png" 
						style="width: 161rpx; height: 184rpx"></image>
					<image v-else :src="data.boygif" style="width: 200rpx; height: 200rpx">
					</image>
				</view>

				<view @click.stop="choseSex('girl')" >				
					<image v-if="data.isStaticGirl" src="静态girl图片路径.png"
						style="width: 161rpx; height: 184rpx"></image>
					<image v-else :src="data.girlgif" style="width: 200rpx; height: 200rpx">
					</image>
				</view>
			</view>
		</view>
c 复制代码
	const data = ref({
		isStaticGirl: true,
		isStaticBoy: true,		
		boygif: '动态boy路径.gif',
		girlgif: '动态girl路径.gif'
	});
bash 复制代码
	function choseSex(key) {
		if (key === "boy") {
			data.value.isStaticBoy = false;
			data.value.isStaticGirl = true;		
			data.value.boygif = '/static/images/动态boy路径.gif?' + new Date().getTime();
		} else {
			data.value.isStaticGirl = false;
			data.value.isStaticBoy = true;		
			data.value.girlgif = '/static/images/动态girl路径.gif?' + new Date().getTime();
		}
	}

这样,每次点击图片时都会重新加载图片,从而实现每次点击都有动态效果的效果。

亲测有效~~~

相关推荐
一渊之隔2 小时前
uniapp BLE 开发踩坑:小米手机数据接收截断问题排查全记录
智能手机·uni-app
阿俊-全栈开发2 小时前
LikeShop 单商户标准版 UniApp 端二开:页面组件复用与自定义主题适配
uni-app·likeshop开源商城·likeshop单商户标准版·多商户源码
半生过往8 小时前
uni-app多端项目工作笔记
笔记·uni-app
00后程序员张9 小时前
无需 Mac 的 iOS App 上架工具,开心上架Appuploader 负责哪些环节
android·ios·小程序·https·uni-app·iphone·webview
8年车载测试1 天前
车载测试中如何通过 Jira 平台提交 Bug:操作步骤与关键要点
bug·jira·uds诊断·hil测试·uds自动化测试·ecu刷写测试·canoe工具
2501_915909061 天前
Ipa Guard 防护上架,混淆、重签名和回归测试怎么做
android·ios·小程序·https·uni-app·iphone·webview
济南壹软网络科技有限公司1 天前
盲盒源码系统小程序V6MAX底层架构解析,PHP+Uniapp高性能商用底座发布
小程序·架构·uni-app
硅基手札1 天前
SPI技术系列 13 · SPI 调试与排查
linux·运维·stm32·单片机·嵌入式硬件·bug
2501_915918411 天前
iOS 上架注意事项有哪些?Appuploader 的四个阶段自查清单
android·ios·小程序·https·uni-app·iphone·webview
李永奉1 天前
杰理可视化SDK开发-【BUG】AC7006F8芯片开启一拖二和双麦通话语音算法后,设置触摸音在唤醒语音助手和通话时触摸音没作用问题
单片机·嵌入式硬件·mcu·物联网·电脑·bug