news 2026/11/4 7:57:45

image 组件:14 种图片显示模式演示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
image 组件:14 种图片显示模式演示

一、案例简介

本案例是微信小程序图片组件的实战练习,核心学习image组件的mode属性。

小程序运行后,页面从上到下依次展示同一张图片的 14 种显示模式,每种模式配一段文字说明,滚动页面即可对比不同模式下图片的裁剪、缩放效果。

本次作业在基础案例之上,在每个显示模式的文字说明上方,增加了该模式的编号(第 1 种~第 14 种),方便对照查看。


二、学习知识点

表格

知识点作用说明
image图片组件,通过src绑定图片地址
mode控制图片裁剪、缩放的模式,共 14 种
wx:for列表渲染,循环生成 14 个图片块
缩放模式scaleToFill / aspectFit / aspectFill / widthFix / heightFix
裁剪模式top / bottom / center / left / right / top left / top right / bottom left / bottom right

14 种 mode 分两类:缩放模式改变图片尺寸,裁剪模式不缩放、只显示图片的某个区域。


三、开发步骤

  1. 新建不使用云服务、不使用模板的小程序项目。
  2. 准备一张图片(本地 images 文件夹或网络地址),在data.src中配置。
  3. 在index.js的data.imgArray中定义 14 个对象,每个对象含id(编号)、mode(模式名)、text(说明)。
  4. 在index.wxml用wx:for循环渲染,<image mode="{{item.mode}}">。
  5. 在图片下方、文字说明上方,用{{shturl.}}显示编号(作业新增)。
  6. 编写样式,编译预览测试。

四、核心代码

1. 页面结构index.wxml

<view class="container"> <view class="item" wx:for="{{imgArray}}" wx:key="mode"> <image class="pic" src="{{src}}" mode="{{item.mode}}"></image> <!-- 作业新增:编号显示在文字说明上方 --> <view class="num">第 {{shturl.}} 种({{item.mode}})</view> <view class="text">{{item.text}}</view> </view> </view>

2. 逻辑index.js

Page({ data: { src: 'https://picsum.photos/375/200', imgArray: [ { id: 1, mode: 'scaleToFill', text: 'scaleToFill:不保持纵横比缩放,使图片完全填满' }, { id: 2, mode: 'aspectFit', text: 'aspectFit:保持纵横比缩放,长边完整显示' }, { id: 3, mode: 'aspectFill', text: 'aspectFill:保持纵横比缩放,短边完整显示' }, { id: 4, mode: 'widthFix', text: 'widthFix:宽度不变,高度自动变化' }, { id: 5, mode: 'heightFix', text: 'heightFix:高度不变,宽度自动变化' }, { id: 6, mode: 'top', text: 'top:不缩放,只显示图片顶部区域' }, { id: 7, mode: 'bottom', text: 'bottom:不缩放,只显示图片底部区域' }, { id: 8, mode: 'center', text: 'center:不缩放,只显示图片中间区域' }, { id: 9, mode: 'left', text: 'left:不缩放,只显示图片左边区域' }, { id: 10, mode: 'right', text: 'right:不缩放,只显示图片右边区域' }, { id: 11, mode: 'top left', text: 'top left:不缩放,只显示左上方区域' }, { id: 12, mode: 'top right', text: 'top right:不缩放,只显示右上方区域' }, { id: 13, mode: 'bottom left', text: 'bottom left:不缩放,只显示左下方区域' }, { id: 14, mode: 'bottom right',text: 'bottom right:不缩放,只显示右下方区域' } ] } })

3. 样式index.wxss

.item { background: #fff; border-radius: 12rpx; padding: 20rpx; margin-bottom: 24rpx; } .pic { width: 100%; height: 200rpx; background: #eee; } .num { font-size: 28rpx; color: #07c160; font-weight: bold; margin-top: 16rpx; } .text { font-size: 28rpx; color: #333; margin-top: 8rpx; }

五、遇到的问题与解决方案

问题 1:图片不显示。原因:src路径写错,或网络图片未在开发者工具勾选「不校验合法域名」。 解决:确认图片地址正确;本地图片放在 images 文件夹并写相对路径,网络图片在详情本地设置里勾选不校验域名。

问题 2:14 段代码重复写 14 个 image。原因:没用列表渲染。 解决:把 14 种模式放进数组,用wx:for循环渲染,只写一个 image 标签。

问题 3:编号没显示。原因:数组里没有id字段。 解决:在每个对象里加id: 1~14,WXML 中用{{shturl.}}输出。


六、运行效果

页面滚动展示 14 张卡片,每张卡片上方是同一图片在对应 mode 下的效果,中间绿色编号「第 N 种(mode 名)」,下方是模式说明文字;作业要求的编号已加在文字说明正上方。


七、案例总结

通过本案例系统掌握了image组件 14 种mode显示模式的差异,理解了缩放模式与裁剪模式的区别,并熟练运用wx:for把数据数组批量渲染成界面。新增的编号字段让每种模式一目了然,也加深了对数据驱动视图的理解。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 16:03:19

AI Agent营销技能包实战:从零搭建可复用的marketingskills

1. 从"marketingskills"这个标题说起&#xff1a;它到底想解决什么问题第一次看到"marketingskills"这个标题&#xff0c;我脑子里蹦出来的不是某个具体工具&#xff0c;而是一类正在快速成型的东西——给 AI Agent 用的技能包。结合热搜词里那一串 Claude…

作者头像 李华
网站建设 2026/10/25 7:40:24

Altium Designer原理图与封装协同设计核心逻辑

1. 这不是“画图软件操作指南”&#xff0c;而是硬件工程师的原理图设计思维起点很多人第一次打开Altium Designer&#xff08;AD&#xff09;&#xff0c;点开新建原理图&#xff0c;拖几个电阻电容&#xff0c;连几根线&#xff0c;保存——以为自己已经“会画原理图”了。但…

作者头像 李华
网站建设 2026/10/25 8:29:48

CPU与DDR3六层高速板PCB布局布线完整实战解析

最近不少硬件工程师问我&#xff1a;CPU 和 DDR3 放在同一块板上&#xff0c;到底要怎么排布才能少踩坑&#xff1f;市面上的资料要么只讲拓扑&#xff0c;要么只给等长规则&#xff0c;很少有把 6 层板从层叠、布局到布线完整串起来的实战演示。这次我们看的内容&#xff0c;正…

作者头像 李华
网站建设 2026/10/29 0:03:29

Agent-Reach:为智能体打造稳定可控的工具调用总线

过去小半年&#xff0c;我大部分业余时间都耗在一个叫 Agent-Reach 的项目上。名字听着有点“洋气”&#xff0c;意思其实很朴素&#xff1a;让智能体真正"够得着"外面的世界。做大模型应用的朋友应该都有同感——让 LLM 聊天、总结、写代码都很顺&#xff0c;可真要…

作者头像 李华