微信小程序开发实战(13):图像组件(image)
image可以用来显示图像,这些图像可以是本地的,也可以是网络图像。例如,下面的布局代码显示了本地图像。
<view style="margin:20px">
<view style="margin-bottom:20px">本地图像</view>
<image src="../../resources/book.png" style="height:300px;width:240px" />
</view>
其中src属性指定了图像源,这里是本地图像文件路径。显示效果如图1所示。
图1显示本地图像
下面的布局代码显示从网络上下载的图像。
<view> <view style="margin-bottom:20px">从网络上获取图像</view> <image src="http://geekori.cn/img/weixin_code.png" style="height:300px;width:300px" bindload="bindload" /> </view>
显示效果如图2所示。
图2 显示从网络上下载的图像
其中bindload属性指定当图像装载成功后调用的事件函数,从e.detail中可以获取图像的实际高度和宽度。bindload函数的代码如下:
bindload:function(e)
{
console.log(e.detail)
}
装载图像后,会在Console中显示如图3所示的信息。我们会看到,height和width都是344,这是图像的实际物理像素。
图3 图像装载成功后显示的信息
<image>标签还有一个mode属性,该属性用于设置图像显示模式,分为缩放和裁剪两种模式。缩放模式有3种,裁剪模式有9种,一共12种模式。这些模式的描述如下:
缩放模式
- scaleToFill:不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 区域
- aspectFit:保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
- aspectFill:保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
裁剪模式
- top:不缩放图片,只显示图片的顶部区域
- bottom:不缩放图片,只显示图片的底部区域
- center:不缩放图片,只显示图片的中间区域
- left:不缩放图片,只显示图片的左边区域
- right :不缩放图片,只显示图片的右边区域
- top left:不缩放图片,只显示图片的左上边区域
- top right:不缩放图片,只显示图片的右上边区域
- bottom left:不缩放图片,只显示图片的左下边区域
- bottom right:不缩放图片,只显示图片的右下边区域
例如,将mode属性值设为top,并且width和height都是200px,布局代码如下:
<view>
<view style="margin-bottom:20px">从网络上获取图像</view>
<image mode="top"
src="http://geekori.cn/img/weixin_code.png"
style="height:200px;width:200px" bindload="bindload" />
</view>
由于图像的宽度和高度都是344px,所以200px无法显示完整的图像,因此,会从顶部截取200px显示,效果如图4所示。
图4 显示一部分图像
如果src属性指定的图像路径错误,那么图像不会正常显示,如果想得知图像是否能成功显示,可以设置binderror属性,该属性指定一个函数名,当图像显示错误是调用,布局代码如下:
<view>
<view style="margin-bottom:20px"> error image</view>
<image src="error url" binderror="imageError" />
</view>
imageError函数的代码如下:
imageError: function(e) {
console.log('image3发生error事件,携带值为', e.detail.errMsg)
}
程序装载后,会在Console中输出如图5所示的信息。
图5 装载图像错误是输出的信息
- 微信JS-SDK 注入权限验证配置
- Maven 项目下slf4j 包冲突问题
- 谷歌教你学 AI-第三讲简单易懂的估算器
- 黑产是如何强刷用户银行卡8.1万元的?
- Spring 必知概念(二)
- 利用iText 组件导出PDF
- 利用POI组件导出Excel的简单示例
- MongoDB 整合spring-data-jpa,spring 4.x
- 【微信开发】 红包接口开发
- 【微信开发】 使用单例设计模式 提供AccessToken 和Jsapi_ticket缓存支持
- @ResponseBody响应JSON 406
- tomcat不能运行或共存多个项目
- Spring Task 定时任务
- 如何为机器学习索引,切片,调整 NumPy 数组
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 老公,JNDI注入是什么呀?
- XXE漏洞:DocumentBuilder使用之殇
- IDEA怎么远程调试应用?
- Tidyverse| XX_join :多个数据表(文件)之间的各种连接
- tidyverse|数据分析常规操作-分组汇总(sumamrise+group_by)
- R|生存分析 - KM曲线 ,必须拥有姓名和颜值
- 每日一题 | 不确定参与人数的抽奖问题
- PT-OSC在线DDL变更工具使用攻略
- mysql-8.0.12-winx64 解压版安装
- Java8InAction
- 文本挖掘|不得不知的jiebaR包,切词分词?
- Java多线程编程核心技术
- oracle 常用函数
- oracle 笔记
- Jackson笔记