js图片大小比例自适应

setImage(i) {
				this.$nextTick(() => { //确保渲染完成后再获取数据
					let image = new Image()
					let Img = document.getElementsByTagName('img').namedItem('img' + this.addTemp.tid + i)//根据图片的name属性获取图片
					Img.width = 0
					Img.height = 0 
					image.src = Img.src
					let timer = setInterval(() => {//定时器保证图片加载完成,否则获取的图片宽高可能为0
						if (image.width == 0 && image.height == 0) {
							return
						} else {
							if (image.width < 148 && image.height < 148) {
								Img.width = image.width;
								Img.height = image.height;
							} else {
								if (1 <= image.width / image.height) //原图片宽高比例 大于 图片框宽高比例
								{
									Img.width = 148;   //以框的宽度为标准
									Img.height = 148 * (image.height / image.width);
								}
								else {   //原图片宽高比例 小于 图片框宽高比例
									Img.width = 148 * (image.width / image.height);
									Img.height = 148;   //以框的高度为标准
								}
							}
							clearTimeout(timer)
						}
					}, 200)
				})
			},

定时器获取图片宽高那里应该也可以用 image.onload事件来保证获取正确的宽高,这个我没有试,大家可以自己试一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值