uniapp 实现图片预览 单图预览和多图预览

落日映苍穹つ 2021-09-02 03:18 2619阅读 0赞

uniapp 实现图片预览 单图预览和多图预览

关键点就是调用

  1. uni.previewImage({
  2. current: index,
  3. urls: photoList
  4. });

如果是单图预览,current对应就是0,urls:必须是单个某一条传入。因为现在预览一张图片,你的current传死就是0.所以urls也必须是字符串形式

如果是多图预览,current,对应就是在循环图片数据的索引,urls: 是数组形式传入。因为uni.previewImage 要根据 current的索引,来动态匹配urls里面的数据

下面代码演示

单图预览模式

  1. // 预览图片单张
  2. previewImage(photoImg) {
  3. console.log('photoImg', photoImg)
  4. let imgsArray = [];
  5. imgsArray[0] = 'data:image/jpeg;base64,' + photoImg;
  6. console.log('imgsArray[0]', imgsArray[0])
  7. uni.previewImage({
  8. current: 0,
  9. urls: imgsArray,
  10. });
  11. },

触发的点击事件

  1. <view
  2. v-for="(itemImg, indexImg) in itemSub.photoList"
  3. :key="indexImg"
  4. @click="previewImage(itemSub.photoList)"
  5. >

我这里比较蛋疼的是,后端返回的图片数据,没有带 data:image/jpeg;base64, 所以我需要自己加上' data:image/jpeg;base64, '

在这里插入图片描述

多图预览模式

  1. // 预览图片多张
  2. previewImage(indexImg, photoImg) {
  3. let photoList = photoImg.map(item => {
  4. let newImg = 'data:image/jpeg;base64,' + item
  5. return newImg;
  6. }); // 这一步是为了给每一条图片数据,添加 'data:image/jpeg;base64,'。如果你的图片数据是完整的base64。此条步骤可以省略
  7. uni.previewImage({
  8. current: indexImg,
  9. urls: photoList
  10. });
  11. },

点击事件

  1. <view
  2. v-for="(itemImg, indexImg) in itemSub.photoList"
  3. :key="indexImg"
  4. @click="previewImage(indexImg, itemSub.photoList)"
  5. >

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,2619人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uniapp图片

    一、需求 最近有一个留言板需求,留言之后需要展示留言信息,信息里面除了文字还有图片。 点击图片,可预览图片。就用到了 uniapp 预览图片的功能:u