uniapp图片自适应显示,不裁剪

17 篇文章 3 订阅
12 篇文章 0 订阅

先看图:
在这里插入图片描述
在这里插入图片描述
这是长图和方图的显示效果,都可以完全显示出来
上代码:
html部分:

<view class="question-title" style="width: 100%">
	<image @load="imageLoad" :style="{'width': images.width + 'px', height: images.height + 'px'}" src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3491947403,393487586&fm=26&gp=0.jpg" mode="aspectFit"></image>
</view>

js部分:

imageLoad: function(e) {
  var $width=e.detail.width,    //获取图片真实宽高
     $height=e.detail.height,
     ratio=$width/$height;    //图片的真实宽高比例
  var viewHeight=186,           //设置图片显示高度
     viewWidth=186 * ratio;    //计算的宽度值
     
  const query1= uni.createSelectorQuery().in(this);
  query1.select('.question-title').boundingClientRect(data => { // 获取图片区域的宽度
    console.log(data)
    if (viewWidth > data.width) { // 如果计算出来的图片宽度大于图片区域的宽度,则重新计算
      viewWidth=data.width          //固定图片宽度为区域宽度
      viewHeight=viewWidth / ratio; // 根据比例计算高度
    }
    var image= this.images; 
    image = {
       width:viewWidth,
       height:viewHeight
    }
    console.log(image)
    this.images = image
  }).exec();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值