微信小程序-image组件

简介: 图片组件。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。

官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/component/image.html


image 组件


图片组件。支持 JPG、PNG、SVG、WEBP、GIF 等格式,2.3.0 起支持云文件ID。


废话不多说直接上代码。

属性


我们先单独的使用下组件让我们的图片显示在页面当中先:


index.wxml:

<image src="../../assets/images/01.png"/>

2105804-20230424000303263-1709284845.png

可以看到图片显示了,但是呢,比例不对劲。这里就要介绍到 image 组件的注意点了。


!> 注意点:在微信小程序当中 image 组件是有默认宽高的 320 * 240


mode


在 image 中比较常用的模式有两个:

  • widthFix:让图片的宽度和image的宽度一样,高度等比拉伸自适应。
  • heightFix:让图片的高度和image的高度一样,宽度等比拉伸自适应


?> mode=“widthFix”

<image mode="widthFix" 
       src="../../assets/images/01.png"
/>


?> mode=“heightFix”

<image mode="heightFix" 
       src="../../assets/images/01.png"
/>


假如我们这个时候需要开发一个banner的效果,我们就可以利用mode="widthFix"来进行实现,我这里简单的来进行写一个示例供参考:


index.wxml:

<image mode="widthFix" 
       src="../../assets/images/01.png"
       class="banner"
/>


index.wxss:

.banner{
  width: 100%;
}


最终效果:

2105804-20230424001939960-707665258.png

bindload


当图片载入完毕时触发,event.detail = {height, width}


首先我们将如下的 WXML 代码在文件当中复制 10 个:


index.wxml:

<image mode="widthFix" 
       src="../../assets/images/01.png"
       class="banner"
       bindload="onImageLoad"
/>


image.png


然后编写 JS 业务逻辑代码:


index.js:

Page({
  onImageLoad(){
    console.log("图片加载完毕");
  }
})


运行这个程序,看控制台的打印:

⑨图片加载完毕


如上的示例证明了一点,就是说我们有多少张图片,它就会加载多少次,这样就会存在一些问题,也就是我所要介绍的注意点。


!> 注意点:默认情况下只要界面被显示,那么界面上所有的图片都会被加载,无论这张图片是否在可视范围内,这样就会导致性能问题,如果界面上的图片比较多的话,我们可以使用lazy-load来优化性能。


lazy-load


官方解释:图片懒加载,在即将进入一定范围(上下三屏)时才开始加载

本文解释:即将显示图片的时候才会去加载图片,而不是一上来就进行加载导致性能问题


使用下 lazy-laod:


改造下之前的案例将如下的代码在 index.wxml 拷贝 20 份:

<image mode="widthFix" 
       src="../../assets/images/01.png"
       class="banner"
/>


然后,在第 20 个 image 组件当中绑定 lazy-load:

<image mode="widthFix" 
       src="../../assets/images/01.png"
       class="banner"
       bindload="onImageLoad"
       lazy-load
/>

2105804-20230424003605132-979359846.gif

目录
相关文章
|
28天前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
30 0
在线课堂+工具组件小程序uniapp移动端源码
|
2月前
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
69 1
微信小程序:轻松实现时间轴组件
|
2月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
595 1
|
2月前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
77 0
微信小程序:自定义关注公众号组件样式
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
74 1
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
235 1
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
662 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
734 1
|
2月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
137 7
ly~
|
3月前
|
存储 供应链 小程序
除了微信小程序,PHP 还可以用于开发哪些类型的小程序?
除了微信小程序,PHP 还可用于开发多种类型的小程序,包括支付宝小程序、百度智能小程序、抖音小程序、企业内部小程序及行业特定小程序。在电商、生活服务、资讯、工具、娱乐、营销等领域,PHP 能有效管理商品信息、订单处理、支付接口、内容抓取、复杂计算、游戏数据、活动规则等多种业务。同时,在企业内部,PHP 可提升工作效率,实现审批流程、文件共享、生产计划等功能;在医疗和教育等行业,PHP 能管理患者信息、在线问诊、课程资源、成绩查询等重要数据。
ly~
84 6