- 本地添加4张图片并显示至页面——组件位置、设置样式、列表渲染
- Q.button是一张图片,需要实现点击这张图片后选择本地图片后显示至页面,不知道怎么让本地图片将button挤到右边 S.在wxml中将本地图片显示区放在button区前面,我将两个区的样式设得一样
- Q.点击button后添加1/多张图片显示至页面的区别 S.列表渲染部分,后者添加的是数组,需要用到_this.data.ObjectArray.concat(res.tempFilePaths)
点击按钮前的页面
点击按钮后的页面
1 <view class=\'up-pic\'> 2 <view class=\'flex\'> 3 <!-- 选择好的图片 --> 4 <block wx:for="{{imgs}}" wx:key="{{index}}"><!-- 这里写item/index效果一样 --> 5 <view class=\'ap-box\' > 6 <view class=\'add-pic\'><!-- 如果这行加wx:if=\'{{imgs.length<4}}\'则包括addpic.png只能加4张照片 --> 7 <image class=\'add-pic\' src=\'{{item}}\' mode="aspectFill"></image> 8 </view> 9 </view> 10 </block> 11 <!-- 添加图片按钮 --> 12 <view class=\'add-pic\' bindtap=\'addpic\' wx:if=\'{{imgs.length<4}}\'> 13 <image class=\'add-pic\' src=\'/images/addpic.png\'mode="aspectFill"></image> 14 </view> 15 </view> 16 </view>
1 .up-pic{ 2 width: 100%; 3 } 4 .flex{ 5 display: flex; 6 } 7 .ap-box{ 8 position: relative; 9 } 10 .add-pic{ 11 width: 160rpx; 12 height: 160rpx; 13 margin-right: 20rpx; 14 position: relative; 15 margin: 10rpx; 16 }
1 addpic: function (e) { 2 var _this=this; 3 wx.chooseImage({ 4 count: 4,//最多可选 5 sizeType: [\'original\', \'compressed\'],//原图或者缩略图 6 sourceType: [\'album\', \'camera\'], 7 success: function (res) {
/*var imgs = res.tempFilePaths;*/ 如果用这行,只能实现点击一次button从本地选择一张图片显示至页面,再点击一次button后第二张图片覆盖第一张图片,不停地在同一位置更换图片,不能添加并显示多张图片
8 var imgs = _this.data.imgs.concat(res.tempFilePaths); //要添加的数组是res.tempFilePaths,使用concat把多个数组合拼起来
9 /*_this.data.imgs=imgs.length<=4?imgs:imgs.slice(0,4)*/ 这行注释掉也可以
10 _this.setData({ //将合拼之后的数据,发送到视图层,即渲染页面
11 imgs: imgs
12 });
13 }
14 })
15 },
data: { text:"确定发布", input:"", imgs:[] },