一、开发微信小程序时列表加载图片,图片闪动

一开始以为是渲染顺序导致的页面显示图片未渲染的问题,后来看到有博主说是因为图片没有固定的高度导致渲染时高度浮动引起的闪动,但是我设置高度后无效,下面是解决方法。

二、解决方法

 1、全局设置图片高度自适应或固定高度
image {
    height:auto; // 或200rpx
}

由于我的列表是瀑布流,无法确定图片高度,所以对我无效

2、使用image组件的bindload方法
// 页面
<image :style="{height:Flag ? null : imageheight+'rpx'}" bindload="showload"></image>

// js
showload(res){
    this.setData({
        Flag:true,
        imageHeight:200
   })
},
// 事件中给图片高度赋值
3、取消image标签的mode属性

因为mode属性是微信自定义的一个属性,所以在渲染的时候和页面原本的 CSS渲染是分开的,造成了多次渲染,所以就会出现图片闪动的情况。解决的办法就是不使用image标签的mode属性

 如需按照图片的原比例显示,使用css就能实现

// heightFix
image {
    width: 100%;
    max-height: 100%;
}
// widthFix
image {
    max-width: 100%;
    height: 100%;
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐