微信小程序-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

目录
相关文章
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
978 1
微信小程序:轻松实现时间轴组件
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
443 0
在线课堂+工具组件小程序uniapp移动端源码
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
3140 1
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
1281 0
微信小程序:自定义关注公众号组件样式
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
1867 1
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
1263 1
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
840 0
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
486 1
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
4920 3
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
880 0
微信小程序更新提醒uniapp

热门文章

最新文章