解决微信小程序通过img标签加载GIF只能播放一次问题

博主在实现微信小程序自定义导航栏的动态效果时遇到问题,发现使用GIF图作为选中状态的动画,多次点击后GIF不再播放。原因是加载本地GIF时,由于缓存问题导致GIF无法重新播放。为了解决这个问题,提出了两种方案:一是利用随机数拼接在GIF路径后面,每次加载不同的URL避免缓存;二是使用时间戳确保每次加载的GIF源都不同。然而,频繁触发可能导致加载延迟,建议尽量避免使用GIF做动画,条件允许的话可以考虑使用Canvas实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博主遇到的问题就是做微信小程序导航栏时,自定义的tabBar导航栏需要在选中的时候有一个动画效果,所以选择了gif图,但是发现点击多次时。gif图有时候不会动,通过查阅资料发现

注意:加载本地gif时,使用v-if,尽管重新加载,由于缓存的问题等等,gif也会保持在终点的状态,不会重新播放

需求:我们切换自定义导航栏图标时,每次都要有动态效果并且每次显示都是从第一帧开始播放,

方案:可以用一个随机数解决

方案2:使用时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的 总秒数。这里getTime得到的是毫秒数,时间戳是秒数,值得注意

<image
      :src="'../static/img/test.gif?'+Math.random()"//或者时间戳new Date().getTime()
      mode="aspectFit"
      v-if="showMyGif"
 />

这样写也存在需要注意的问题:如果是频繁触发的gif动效,显示的频率是受到网速加载的影响,最好是不用gif做动画,如果有能力可以用canvas做

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值