H5图片高度根据宽度自适应

91 篇文章 4 订阅
86 篇文章 14 订阅

每个图片原始宽高不一样,缩小每个图片到指定的宽度,高度等比例缩小,实现图片高度自适应。

下面看看实现代码:

下面是uniapp的条件编译,如果是小程序场景就使用 mode 属性实现高度自适应,如果是H5场景,就通过图片 的 load 获取图片的宽高,然后通过计算出缩小后的宽高动态渲染到页面

<block v-for="(item,index) in awardsList" :key="index">

    <!--  #ifdef  MP -->
    <image mode="widthFix" :id="index" :src='item.img' class="canvas-item-img"></image>
    <!--  #endif -->

    <!--  #ifdef  H5 -->						
    <image @load="dialImgLoad" :id="index" :src='item.img' :style="{width:item.img_width,height:item.img_height}">                    
    </image>
    <!--  #endif -->

<block>

js代码:this.$forceUpdate() 是强制更新视图,因为页面加载的时候,图片设置宽高时是没有 img_width的。

80是需要设置的图片高度,图片的高度根据这个值等比缩小

methods: {
	dialImgLoad(e){
		let idx = e.currentTarget.id;
		let num = e.detail.width/80;
		this.awardsList[idx].img_width = 80+'rpx'
		this.awardsList[idx].img_height = (e.detail.height/num).toFixed(2)+'rpx'
		this.$forceUpdate()
	}
}

css代码:设置一个默认宽度,这里仅小程序会生效,H5会被 style 属性覆盖。

.canvas-item-img {
	width: 80rpx;
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a_靖

对你有帮助吗?打赏鼓励一下?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值