1. 程式人生 > >小程式實現選擇圖片預覽圖片長按刪除圖片

小程式實現選擇圖片預覽圖片長按刪除圖片

最近在做一個小程式的專案,初次接觸,也是邊學邊做,目前遇到圖片處理的相關問題,在此記錄,也對有需要的朋友提供一些幫助。 類似於微信朋友圈釋出圖片,長按指定圖片刪除
長按圖片刪除,不足9張可以繼續新增

圖片預覽效果

實現思路:

  • 調整頁面,實現展示效果
  • 使用wx.chooseImage實現拍照和選擇照片
  • 使用wx.previewImage實現圖片預覽
  • 使用bindlongpress自定義圖片刪除功能

話不多說,上程式碼:
wxml程式碼

<view class="weui-cells">
  <view class="weui-cell">
    <view class="weui-cell__bd">
      <view class="weui-uploader">
        <view
class="weui-uploader__hd">
<view class="weui-uploader__title">圖片上傳</view> <view class="weui-uploader__info">
{{files.length}} / 9</view> </view> <view class="weui-uploader__bd"> <view class="weui-uploader__files" id="uploaderFiles"
>
<block wx:for="
{{files}}" wx:key="*this"> <view class="weui-uploader__file" bindtap="previewImage" bindlongpress="deleteImage" id="{{item}}" data-index="{{index}}"> <image class="weui-uploader__img" src="{{item}}" mode="aspectFill"/> </view
>
</block> </view> <view wx:if="
{{files.length < 9}}" class="weui-uploader__input-box" > <view class="weui-uploader__input" bindtap="chooseImage"></view> </view> </view> </view> </view> </view> </view>

js程式碼

Page({
  data: {
    files: []
  },
  chooseImage: function(e) {
    var that = this;
    var images = that.data.files;
    wx.chooseImage({
      count: 9 - images.length,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: function(res) {
        // 返回選定照片的本地檔案路徑列表,tempFilePath可以作為img標籤的src屬性顯示圖片
        that.setData({
          files: that.data.files.concat(res.tempFilePaths)
        });
      }
    })
  },
  previewImage: function(e) {
    wx.previewImage({
      current: e.currentTarget.id,
      urls: this.data.files
    })
  },
  deleteImage: function(e) {
    var that = this;
    var images = that.data.files;
    var index = e.currentTarget.dataset.index; //獲取當前長按圖片下標
    wx.showModal({
      title: '系統提醒',
      content: '確定要刪除此圖片嗎?',
      success: function(res) {
        if (res.confirm) {
          images.splice(index, 1);
        } else if (res.cancel) {
          return false;
        }
        that.setData({
          files: images
        });
      }
    })
  }
})

下面沒有了,以上就是實現的全部程式碼!! 附上微信小程式官方教程 —— [ 微信小程式API ]