全部产品
云市场
云游戏

Image

更新时间:2020-08-17 15:38:20

本文介绍图片(image)。

属性名 类型 默认值 描述 最低版本
src String - 图片地址 -
mode String scaleToFill 图片模式 -
class String 外部样式 - -
style String 内联样式 - -
lazy-load Boolean false 支持图片懒加载,不支持通过 css 来控制 image 展示隐藏的场景。 1.9.0
onLoad EventHandle - 图片载入完毕时触发,事件对象 event.detail = {height:'图片高度px', width:'图片宽度px'} -
onError EventHandle - 当图片加载错误时触发,事件对象 event.detail = {errMsg: 'something wrong'} -
onTap EventHandle - 点击图片时触发 -
catchTap EventHandle - 点击图片时触发,并阻止事件冒泡 -
说明:image 组件默认宽度 300px、高度 225px。

mode

mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。

缩放模式

属性名 描述
scaleToFill 不保持纵横比缩放,使图片的宽高完全拉伸至填满 image 元素
aspectFit 保持纵横比缩放,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来
aspectFill 保持纵横比缩放,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取
widthFix 宽度不变,高度自动变化,保持原图宽高比不变

裁剪模式

属性名 描述
top 不缩放图片,只显示顶部区域
bottom 不缩放图片,只显示底部区域
center 不缩放图片,只显示中间区域
left 不缩放图片,只显示左边区域
right 不缩放图片,只显示右边区域
top left 不缩放图片,只显示左上边区域
top right 不缩放图片,只显示右上边区域
bottom left 不缩放图片,只显示左下边区域
bottom right 不缩放图片,只显示右下边区域
说明:图片高度不能设置为 auto,如果需要图片高度为 auto,直接设置 mode 为 widthFix.

图示

原图

original

scaleToFill

不保持纵横比缩放,使图片完全适应。

scaleToFill

aspectFit

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

aspectFit

aspectFill

保持纵横比缩放,只保证图片的短边能完全显示出来。

aspectFill

widthFix

宽度不变,高度自动变化,保持原图宽高比不变。

widthFix

top

不缩放图片,只显示顶部区域。

top

bottom

不缩放图片,只显示底部区域。

bottom

center

不缩放图片,只显示中间区域。

center

left

不缩放图片,只显示左边区域。

left

right

不缩放图片,只显示右边区域。

right

top left

不缩放图片,只显示左上边区域。

top left

top right

不缩放图片,只显示右上边区域。

top right

bottom left

不缩放图片,只显示左下边区域。

bottom left

bottom right

不缩放图片,只显示右下边区域。

bottom right

代码示例

  1. <view class="section" a:for="{{array}}" a:for-item="item">
  2. <view class="title">{{item.text}}</view>
  3. <image style="background-color: #eeeeee; width: 300px; height:300px;" mode="{{item.mode}}" src="{{src}}" onError="imageError" onLoad="imageLoad" />
  4. </view>
  1. Page({
  2. data: {
  3. array: [{
  4. mode: 'scaleToFill',
  5. text: 'scaleToFill:不保持纵横比缩放,使图片完全适应'
  6. }, {
  7. mode: 'aspectFit',
  8. text: 'aspectFit:保持纵横比缩放,使图片的长边能完全显示出来'
  9. }, {
  10. mode: 'aspectFill',
  11. text: 'aspectFill:保持纵横比缩放,只保证图片的短边能完全显示出来'
  12. }, {
  13. mode: 'top',
  14. text: 'top:不缩放图片,只显示顶部区域'
  15. }, {
  16. mode: 'bottom',
  17. text: 'bottom:不缩放图片,只显示底部区域'
  18. }, {
  19. mode: 'center',
  20. text: 'center:不缩放图片,只显示中间区域'
  21. }, {
  22. mode: 'left',
  23. text: 'left:不缩放图片,只显示左边区域'
  24. }, {
  25. mode: 'right',
  26. text: 'right:不缩放图片,只显示右边边区域'
  27. }, {
  28. mode: 'top left',
  29. text: 'top left:不缩放图片,只显示左上边区域'
  30. }, {
  31. mode: 'top right',
  32. text: 'top right:不缩放图片,只显示右上边区域'
  33. }, {
  34. mode: 'bottom left',
  35. text: 'bottom left:不缩放图片,只显示左下边区域'
  36. }, {
  37. mode: 'bottom right',
  38. text: 'bottom right:不缩放图片,只显示右下边区域'
  39. }],
  40. src: './2.png'
  41. },
  42. imageError: function (e) {
  43. console.log('image3 发生错误', e.detail.errMsg)
  44. },
  45. imageLoad: function (e) {
  46. console.log('image 加载成功', e);
  47. }
  48. })