2021-06-10 uniapp小程序实现image mode="heightFix"功能

image.png

问题描述

公司项目需要做多端小程序,由于抖音小程序的图片组件mode属性不支持heightFix,于是只能自己做兼容。

原理解析:

是利用image组件@load加载完成事件获取图片原来的宽高计算出图片宽高比,由此动态计算图片宽度

实现代码

具体自行看注释

html 部分
<image 
  src="图片地址"
  :style="{width: imgWidth + 'px',height: imgHeight+ 'rpx'}"
  @load="imageLoad"
  mode="heightFix"
></image>
js 部分
data () {
    return {
      imgWidth: 0,   // 图片宽度(单位:px)
      imgHeight: 58, // 图片高度 (单位:rpx)
    }
},
methods: {
  imageLoad(e) {
      //获取图片真实宽度
      let imgwidth = e.detail.width,
        imgheight = e.detail.height,
        ratio = imgwidth / imgheight // 宽高比
        // 计算公式:图片宽度 = 图片宽高比 * 图片高度,并保留3位小数,
        // 因获取的图片真实宽度为px,而高度我用的rpx单位,所以图片高度使用时要换算成px
        this.imgWidth = Number((ratio * this.imgHeight / 750 * uni.getSystemInfoSync().windowWidth).toFixed(3))
   },
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容