2021-11-21、image组件的详细说明

2021-11-21  本文已影响0人  疋瓞

1、案例描述

使用image组件,来展示所有image的mode(显示模式)。


示例图片.jpeg
示例图片.jpeg

2、实现过程

2.1、代码展示

<!--pages/kj/demo111-template/index.wxml-->
<view class="box">
  <view class="title">图片展示</view>
  <view class="image_mode">列表的四种缩放模式</view>
  <block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{index}}:{{item}}</view>
    <view class="image_setUp">
      <image mode="{{index}}" src="{{source1}}"></image>
    </view>
    ============
  </block>

  <view class="image_mode">列表的九种裁剪模式</view>
  <text>原图:</text>
  <view class="image_setUp">
    <image src="{{source2}}"></image>
  </view>
  <block wx:for="{{image_mode_size_cutting}}" wx:key="*this">
    <view>{{item.mode}}:{{item.interpret}}</view>
    <view class="image_setUp">
      <image mode="{{item.mode}}" src="{{source2}}"></image>
    </view>
    ============
  </block>
</view>
/* pages/kj/demo111-template/index.wxss */
.image_mode{
    text-align: center;
    size: 15px;
    color: black;
    font-weight: bold;
    margin: 5px 0px;
}
.image_setUp{
    text-align: center;
    margin: 5px 0px;
}
image{
    height: 200px;
    width: 200px;
    background-color: rgb(17, 10, 10);
}
// pages/kj/demo111-template/index.js

var image_mode_size_change={
  scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素',
  aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来',
  aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取',
  widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'
};
var source1 = "https://img.haomeiwen.com/i14216764/979eb2d7930bad9b.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240";
var image_mode_size_cutting=[
{
    mode : 'top',
    interpret : '不缩放,只显示图片顶部'
},
{
  mode : 'bottom',
  interpret : '不缩放,只显示图片底部'
},
{
  mode : 'center',
  interpret : '不缩放,只显示图片中间'
},
{
  mode : 'left',
  interpret : '不缩放,只显示图片左边'
},
{
  mode : 'right',
  interpret : '不缩放,只显示图片右边'
},
{
  mode : 'top left',
  interpret : '不缩放,只显示图片左上'
},
{
  mode : 'top right',
  interpret : '不缩放,只显示图片右上'
},
{
  mode : 'bottom left',
  interpret : '不缩放,只显示图片左下'
},
{
  mode : 'bottom right',
  interpret : '不缩放,只显示图片右下'
}
];
var source2 = "https://img.haomeiwen.com/i14216764/f3704641090458b4.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240";
Page({
  data: {
    source1 : source1,
    source2 : source2,
    image_mode_size_change : image_mode_size_change,
    image_mode_size_cutting : image_mode_size_cutting
  }
 
  
})

2.2、结果展示

结果1.png
结果2.png

3、知识汇总

知识要点.png image组件.png image组件显示模式.png image组件的四种缩放模式.png image组件的九种裁剪模式.png

4、踩坑说明

在js中表示对象

//错误的对象定义方法:
var image_mode_size_change=[
  {scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素'},
  {aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来'},
  {aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取'},
  {widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'}
]
//修改后的对象定义方法:
var image_mode_size_change={
  scaleToFill:'不保持纵横比缩放图片,使图片的高度完全拉伸到填满image元素',
  aspectFit:'保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整的将图片显示出来',
  aspectFill:'保持纵横比缩放图片,只保证图片的短边能完全显示出来。即图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取',
  widthFix:'宽度不变,高度自动变化,保持原图宽高比不变'
}

//总结:如何在js中定义对象
var 对象名{
  key1 : value1,
  key2 : value2,
  key3 : value3
}

在wxml中调用对象

//错误的调用方法:
<block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{item.key}}:{{item.value}}</view>
    <view class="image_size">
      <image mode="{{item.key}}" src="{{source}}"></image>
    </view>
  </block>
//修改后的调用方法:
<block wx:for="{{image_mode_size_change}}" wx:key="*this">
    <view>{{index}}:{{item}}</view>
    <view class="image_size">
      <image mode="{{item.key}}" src="{{source}}"></image>
    </view>
  </block>

//总结:如何在wxml中调用对象
在wxml中对象的key用index调用,对象的value用item调用

——————————————————————

//js列表中定义对象作为元素的方法(其中key1和key2是固定的,value1和value2是变化的)
var 列表名=[
{
key1 : value1,
key2 : value2,
},
{
key1 : value1,
key2 : value2,
},
{
key1 : value1,
key2 : value2,
}
]
//wxml中调用的方法:
使用“item.key”(注意key是明确的对象中键值),来调用value。

——————————————————————

wxml:

<view class="image_setUp">
      <image mode="{{index}}" src="{{source}}"></image>
</view>

wxss:

//问题代码:
.image_setUp{
    height: 200px;
    width: 200px;
    background-color: rgb(184, 177, 177);
}
//修改后的代码:
.image_setUp{
    text-align: center;
    margin: 5px 0px;
}
image{
    height: 200px;
    width: 200px;
    background-color: rgb(17, 10, 10);
}

问题总结:在给图片设置大小的时候,在外层设置是没有用的,应该直接设置到图片自身。

上一篇 下一篇

猜你喜欢

热点阅读