收藏
回答

IOS中小程序image组件的load事件执行时机和安卓不一样?

使用image组件渲染序列帧的图片,如果所有image的组件图片全部加载完毕就播放序列帧动画,在安卓上会有耗时下载的时间,iOS直接播放了动画

<view class="item-father" :class="{'animation': isLoad}">
			<image class="item" v-for="(i,index) in planetDefault" @load="handleImageLoad(index)" :key="index" :src="i">
			</image>
		</view>


			async handleImageLoad(index) {
				this.loadStatus[index] = 1;
				if (!this.loadStatus.includes(0)) {
					// 所有图片加载完成
					this.isLoad = true
				}
			}
回答关注问题邀请回答
收藏

1 个回答

  • 北望沣渭
    北望沣渭
    发表于移动端
    06-16
    谢邀,js for循环(即v-for)是同步代码,一个循环就都渲染了
    06-16
    有用
    回复 2
    • 宇珩
      宇珩
      发表于移动端
      06-16
      但是没等图片加载完就执行load函数了,这样就会导致动画会闪烁几次,然后就不闪了,这个情况只在ios上出现了
      06-16
      回复
    • 北望沣渭
      北望沣渭
      06-16回复宇珩
      网上很多 lazy-load 插件可以选择试试;思路一般做法是,img src指到一个空白图,data-src才是真正的远端地址,@load=handle的时候通过读取data-src去加载然后替换src
      06-16
      回复
登录 后发表内容