程序里实现选择预览图片及长按删除图片的代码示例

why 291 2024-08-08

本篇文章给大家带来的内容是关于小程序中实现选择预览图片同时可以实现长按删除图片的代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近在做一个小程序的项目,初次接触,也是边学边做,目前遇到图片处理的相关问题,在此记录,也对有需要的朋友提供一些帮助。 类似于微信朋友圈发布图片,长按指定图片删除

小程序中实现选择预览图片同时可以实现长按删除图片的代码小程序中实现选择预览图片同时可以实现长按删除图片的代码小程序中实现选择预览图片同时可以实现长按删除图片的代码
长按图片删除,不足9张可以继续添加
小程序中实现选择预览图片同时可以实现长按删除图片的代码
图片预览效果

实现思路:

  • 调整页面,实现展示效果

  • 使用wx.chooseImage实现拍照和选择照片

  • 使用wx.previewImage实现图片预览

  • 使用bindlongpress自定义图片删除功能

话不多说,上代码:
wxml代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<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代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

Page({

  data: {

    files: []

  },

  chooseImage: function(e) {

    var that = this;    var images = that.data.files;

    wx.chooseImage({

      count: 9 - images.length,

      sizeType: [&#39;original&#39;, &#39;compressed&#39;],

      sourceType: [&#39;album&#39;, &#39;camera&#39;],

      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: &#39;系统提醒&#39;,

      content: &#39;确定要删除此图片吗?&#39;,

      success: function(res) {

        if (res.confirm) {

          images.splice(index, 1);

        } else if (res.cancel) {          return false;

        }

        that.setData({

          files: images

        });

      }

    })

  }

})

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序中利用 setData 实现修改数组中某一个值的方法
下一篇:微信小程序中自定义 showmodal 弹出框的代码实现方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~