在vue中通过js动态控制图片按比列缩放

1.html

通过外层的div来给img对应的class,隐藏的img是得到img图片请求回来时的原始尺寸。外层div是固定大小,因此,图片有两种情况去适应外部div的尺寸。一种是宽度大于高度的情况,一种是高度大于宽度的情况。

curSource.src是动态请求的img路径

<div style='width:1349px;height:909px;'>
  <img :src="curSource.src" alt="" :class="isHeight ? 'hovImg' : 'verImg'">
  <img  ref='imgShow' :src="curSource.src" style="display:none">
  <span v-if='infoState' class="info">加载失败,请刷新页面重试...</span>
</div>

2.methods中 使用图片加载完成时候的事件,来得到原始图片的宽高,在按比例设置显示图片的样式

this.$refs.imgShow.onload = () => {
  if (this.$refs.imgShow.width / this.$refs.imgShow.height > 1349 / 909) {
    this.isHeight = true
  } else {
    this.isHeight = false
  }
  this.spinShowTop = false
}

3.data中

data () {
  return {
    isHeight: false, // 控制图片的大小
    curSourece.src,
  }
}

4.style 一种是宽度大于高度的情况,一种是高度大于宽度的情况。

.hovImg{
  width: 100%;
  height: auto;
}
.verImg{
  width: auto;
  height: 100%;
}

 

转载于:https://www.cnblogs.com/wgl0126/p/11082853.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值