微信小程序之Image那些事

文章介绍了在小程序中处理动态渲染的Image组件时,如何动态读取图片大小并根据需求设置宽度,通过Vue3的语法示例展示了动态设置style以及动态赋值的方法,确保图片在宽度百分百或高度自适应的情况下不超过最大宽度。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

小程序中 Image使用频率是非常高的 不同场景下 Image使用的属性也不一样

一、使用场景

因为小程序的image是有默认大小的 所以在使用时不得不手动去设置大小 单一图片都好处理 如果是动态渲染的 该怎么处理呢 大部分处理处理方式就是宽度百分百 高度自适应 或者高度百分百 宽度自适应 那么我们该如何精准处理呢

二、使用方式

1.动态读取image大小

文档地址

在这里插入图片描述
通过load方法得到原始图片的宽高。

2.动态设置style

这里是vue3的语法 供参考

<view class="paperList">
 <view
   class="paperItem"
   v-for="(item, i) in vdata.imageList"
   :key="item"
   @tap="lookDetail(i)"
 >
   <image
     mode="widthFix"
     :src="item"
     :style="{ width: vdata.imgSize[i + '_' + 'index'] || 0 }"
     @load="(e) => getImgSize(e, i + '_' + 'index')"
   ></image>
 </view>
</view>

import { reactive } from 'vue'
const vdata: any = reactive({
  imageList: [],
  imgSize: {},
})

3.动态赋值

const getImgSize = (e, index, type?: Number) => {
  let maxWidth = type || vdata.mainWidth
  const { width } = e.detail

  if (width > maxWidth) {
    vdata.imgSize[index] = `${maxWidth}px`
  } else {
    vdata.imgSize[index] = `${width}px`
  }
}

总结

宽度百分百 高度自适应 如果宽度大于某个值 设置最大值 如果小于 则取图片宽度 通过bindload读取宽度 然后动态设置。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

沫熙瑾年

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值