• 微信小程序图片选择,预览和删除


    这里均用的是小程序原生api

    废话不多说直接上栗子:

    <view class="addImv">
          <!--这个是已经选好的图片-->
          <view wx:for="{{banner}}" wx:key="key" class="upFile" bindtap="showImageBanner" style="border-radius: 5px" data-id="{{index}}">
            <image class="itemImv" src="{{item}}"></image>
            <image class="closeImv" src="../../resources/images/delect.png" mode="scaleToFill" catchtap="deleteImvBanner" data-id="{{index}}"></image>
          </view>
     
          <!--这个是选择图片-->
          <view class="chooseView" bindtap="chooseBanner" style="border-radius: 5px" wx:if="{{chooseViewShowBanner}}">
            <image class="chooseImv" src="../../resources/images/add.png"></image>
          </view>
        </view>
    
    /*选择图片View*/
     
    .addImv {
      background-color: white;
      /* border: 1px dashed gray; */
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      margin-top: 5rpx;
    }
     
    .upImv {
      background-color: white;
       100%;
      margin-top: 5rpx;
    }
     
    .upImv_text {
      font-size: 30rpx;
      margin-left: 20rpx;
      padding-top: 20rpx;
    }
     
    /*添加图片*/
     
    .addImv .chooseView {
       180rpx;
      height: 180rpx;
      margin: 20rpx 20rpx;
      background-color: #f2f6f9;
      border: 1px dashed lightgray;
      text-align: center;
      line-height: 180rpx;
      /* padding: 0rpx 7rpx; */
      border-radius: 5px;
      margin-left: 40rpx;
    }
     
    .addImv .chooseImv {
       50rpx;
      height: 50rpx;
    }
     
    /*已选择的图片*/
     
    .addImv .upFile {
       180rpx;
      height: 180rpx;
      position: relative;
      padding: 0rpx 7rpx;
      margin-left: 40rpx;
      border: 1px solid #c0ccda;
    }
     
    .addImv .upFile .itemImv {
       180rpx;
      height: 180rpx;
      padding: 0rpx 7rpx;
    }
     
    .addImv .upFile .closeImv {
      position: absolute;
      right: 0rpx;
      top: 0rpx;
       50rpx;
      height: 50rpx;
    }
    
    Page({
     
      /**
       * 页面的初始数据
       */
      data: {
        banner: [], //轮播图片
      },
     
      /** 选择图片Banner */
      chooseBanner: function() {
        var that = this;
        if (this.data.banner.length < 2) {
          wx.chooseImage({
            count: 2, //最多选择2张图片- that.data.banner.length,
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function(res) {
              // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
              console.log(res.tempFilePaths);
              if (res.tempFilePaths.count == 0) {
                return;
              }
              //上传图片
              var imgArrNow = that.data.banner;
              imgArrNow = imgArrNow.concat(res.tempFilePaths);
              that.setData({
                banner: imgArrNow
              })
              that.chooseViewShowBanner();
            }
          })
        } else {
          wx.showToast({
            title: '限制选择6个文件',
            icon: 'loading',
            duration: 1000
          })
        }
      },
     
      /** 删除图片Banner */
      deleteImvBanner: function(e) {
        var banner = this.data.banner;
        var itemIndex = e.currentTarget.dataset.id;
        banner.splice(itemIndex, 1);
        this.setData({
          banner: banner
        })
        //判断是否隐藏选择图片
        this.chooseViewShowBanner();
      },
     
     
      /** 是否隐藏图片选择Banner*/
      chooseViewShowBanner: function() {
        if (this.data.banner.length >= 2) {
          this.setData({
            chooseViewShowBanner: false
          })
        } else {
          this.setData({
            chooseViewShowBanner: true
          })
        }
      },
     
      /** 查看大图Banner */
      showImageBanner: function(e) {
        var banner = this.data.banner;
        var itemIndex = e.currentTarget.dataset.id;
        console.log("itemIndex:" + JSON.stringify(e))
        wx.previewImage({
          current: banner[itemIndex], // 当前显示图片的http链接
          urls: banner // 需要预览的图片http链接列表
        })
      },
    })
    
  • 相关阅读:
    Openssl命令详解
    Openssl命令详解
    Mac根目录下无法创建文件或目录
    解决 mysql from_base64 函数返回乱码的问题
    elementUI日期选择器 el-date-picker根据所选日期选择禁用
    el-dialog设置为点击弹窗以外的区域不自动关闭弹窗
    在vue项目中MD5加密的使用方法
    bower install 报错fatal: unable to access 'https://github.com/angular/bower-angular-touch.git/'类错误解决方法
    angular项目grunt serve报错Cannot find where you keep your Bower packages
    移动端开发--》适配各种机型样式大小
  • 原文地址:https://www.cnblogs.com/zouwangblog/p/11141339.html
Copyright © 2020-2023  润新知