微信小程序图片等比缩放和展示中间部分image的mode属性

本文探讨如何改进图片展示方式,实现单图等比缩放与多图部分显示,通过mode属性优化image组件的美观度,适用于电商小程序设计。

有发现我写得页面,带有图片的几乎都是外面套一层,然后把里面得image拉满,不知道大家是怎么写得,兴许是我太菜了,只会这么写,反正就是很难看就对了

更改前

这样的话,宽高不一定合适,就可能会造成被压扁的情况,不太友好

但之前一直写管理系统大表单什么的,也没咋注意过美观不美观,这个事儿一直就没有发现,直到现在开始写电商小程序了,这件事儿逐渐暴露了出来[苦涩]

为了美观,想办法改改我一贯的写图片得方式吧

设计要求:单张图时显示等比缩小的图片,多张图时截取图片一部分显示

  • 首先,只有一张图片的时候的等比缩放
//给image设置宽高
//mode值为aspectFit
<image class="comment_img" mode="aspectFit" src="{{item_}}"></image>

aspectFit:缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。
等比缩放

  • 第二个,多张图片时,只展示图片中间的一部分
//同样给image设置宽高
//mode值为center
<image class="comment_imgs" wx:for="{{item.imgs}}" wx:for-index="indexs"
 wx:for-item="items" src="{{items}}" mode="center"></image>

center:裁剪模式,不缩放图片,只显示图片的中间区域
显示中间部分

重点在于mode属性,其实一开始给我提这个问题的时候我也挺愁这个该咋办呢,后来发现image还有mode这个属性,简直方便至极!!

就举这两个例子吧,因为我猜测这两个是比较常用的,这只是chuachua的一个猜测,但chuachua不善于猜测,并且chuachua建议大家有事儿没事儿多看看开发文档

### 微信小程序 `image` 组件的 `mode` 属性 `image` 组件是微信小程序中用于显示图片的核心组件之一,支持多种图片格式以及丰富的属性配置[^2]。其中,`mode` 属性主要用于定义图片如何适应其容器尺寸。以下是关于 `mode` 属性的具体说明及其官方文档中的示例。 #### `mode` 属性的作用 `mode` 属性决定了当图片的实际宽高比例与容器不一致时,图片应该如何调整来适配容器。该属性有 13 种模式可供选择,每种模式对应一种特定的缩放行为[^3]。 | 模式名称 | 描述 | |----------------|----------------------------------------------------------------------| | `scaleToFill` | 不保持纵横比缩放图片,使图片完全适应容器大小 | | `aspectFit` | 保持纵横比缩放图片,使图片宽度或高度完全适应容器 | | `aspectFill` | 保持纵横比缩放图片,只保证图片的一边能完全显示 | | `widthFix` | 宽度不变,按照指定的高度进行等比缩放 | | `heightFix` | 高度不变,按照指定的宽度进行等比缩放 | | `top` | 图片顶部对齐,多余部分被裁剪 | | `bottom` | 图片底部对齐,多余部分被裁剪 | | `left` | 图片左部对齐,多余部分被裁剪 | | `right` | 图片右部对齐,多余部分被裁剪 | | `center` | 图片居中显示,多余部分被裁剪 | | `top left` | 图片左上角对齐,多余部分被裁剪 | | `top right` | 图片右上角对齐,多余部分被裁剪 | | `bottom left` | 图片左下角对齐,多余部分被裁剪 | | `bottom right` | 图片右下角对齐,多余部分被裁剪 | #### 官方文档示例代码 以下是一个简单的示例,展示了如何使用 `mode` 属性: ```html <view class="container"> <image src="/images/example.jpg" mode="aspectFit"></image> </view> ``` ```css .container { width: 200px; height: 200px; } ``` 在这个例子中,`mode="aspectFit"` 表示图片会按比例缩小至完全适合容器,而不会发生变形。 --- #### 实际应用场景 假设有一个场景需要在一个固定大小的正方形区域内显示一张横版照片,并且希望保留原图的比例关系,则可以选择 `aspectFit` 或 `aspectFill` 来满足需求。如果需要进一步控制图片的位置(如仅显示中间区域),则可以选用带方向性的模式(如 `center`、`top left` 等)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值