微信小程序-图片等比例显示不变形


我的个人博客:https://okven.github.io/


官方解释

mode 属性

使用mode属性 属性值设置为widthFix :宽度不变,高度自动变化,保持原图宽高比不变。

<image class='manImg' mode='widthFix' style="width:100%;" src='{{item.starItem.imageUrl}}' />

bindLoad函数

使用bindload绑定函数动态自适应。 当图片发布完毕时,调用这个函数实现动态自适应

//wxml
<image class='manImg' bindload="imageLoad" style="width:{{imgwidth}}rpx; height:{{imgheight }}rpx;" src='{{item.starItem.imageUrl}}' />

//js
imageLoad: function(e) {
    let _this=this;
    let width=e.detail.width,    //获取图片真实宽度
        height=e.detail.height,
        ratio=width/height;   //图片的真实宽高比例
    let viewWidth=500,           //设置图片显示宽度,
        viewHeight=500/ratio;    //计算的高度值
    this.setData({
        imgwidth:viewWidth,
        imgheight:viewHeight
    })
}

推荐第一种:

原因: 第二种实现方式每次图片发布完毕时都会执行一次通信(setData),营销页面渲染效率。
第一种方式的优点在于 当宽度设置百分比100%时,宽度自然会自适应。换一种思路完全可以用外层的view去控制图片

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值