首页 > 其他分享 >解决Element使用el-image总是从第一张开始的问题

解决Element使用el-image总是从第一张开始的问题

时间:2022-10-20 12:01:52浏览次数:48  
标签:tempImgList el 预览 index image Element 点击 当前 图片

  1. 问题起源:

                 近期在使用 elementUI 组件库中的Image组件时,其组件会自带一个图片预览功能,仅需要通过传入 preview-src-list (需要预览的图片url数组)即可实现预览。

     代码如下(zIndex使用是由于我把这个功能放在弹框上面,所以需要加这个属性才不会被弹框遮挡):

<el-image
   style="width: 60px; height: 60px; margin-right: 20px"
   v-for="(img, imgIndex) in detailsInfo.certificatePics"
   :key="imgIndex"
   :zIndex="3000"
   :src="img.pictureUrl"
   :preview-src-list="detailsInfo.certificatePics.map((pic) => pic.pictureUrl)"
/>

    但是发现,点击第二张、第三张图片进行预览的时候, 会从第一张图片开始预览, 并不会从当前图片开始预览。 这和点击当前图片即预览当前图片的期望不符。

  2、问题解决方案1:

    直接预览单张,不可以左右滑动轮播。

    代码如下:

<el-image
   style="width: 60px; height: 60px; margin-right: 20px"
   v-for="(img, imgIndex) in detailsInfo.certificatePics"
   :key="imgIndex"
   :zIndex="3000"
   :src="img.pictureUrl"
   :preview-src-list="[
     detailsInfo.certificatePics[imgIndex].pictureUrl,
    ]"
/>

  3、问题解决方案2:

    根据当前的索引动态传入preview-src-list参数。

    代码如下:

<el-image
   style="width: 60px; height: 60px; margin-right: 20px"
   v-for="(img, imgIndex) in detailsInfo.certificatePics"
   :key="imgIndex"
   :zIndex="3000"
   :src="img.pictureUrl"
   :preview-src-list="privewImages(imgIndex)"
/>
privewImages(index) {
      let tempImgList = this.detailsInfo.certificatePics.map(
        (item) => item.pictureUrl
      );
      // 所有图片地址
      if (index == 0) return tempImgList;
      // 调整图片顺序,把当前图片放在第一位
      let start = tempImgList.splice(index);
      let remain = tempImgList.splice(0, index);
      return start.concat(remain); // 将当前图片调整成点击缩略图的那张图片
},

    这样也可以实现点击当前图片的时候,就会实时的展示当前图片预览,而且有点击键盘左右箭头切换图片的功能。

    但是会发现,这样如果图片很多,每一次都要计算很多次的话......

    

 

 

标签:tempImgList,el,预览,index,image,Element,点击,当前,图片
From: https://www.cnblogs.com/zaijin-yang/p/16809355.html

相关文章

  • JDBC练习_delete、DDL语句和JDBC各个类详解_ResultSet_基本使用
    JDBC练习_delete、DDL语句:delete语句:删除一条记录1.练习:account表 删除一条记录publicstaticvoidmain(String[]args){//设sta为空Statement......
  • 2017 ACM Arabella Collegiate Programming Contest div2的题,部分题目写个题解
    F.MonkeyingAround 维护点在多少个线段上​​http://codeforces.com/gym/101350/problem/F​​题意:有m个笑话,每个笑话的区间是[L,R],笑话种类有1e5,一开始所有猴子都在......
  • Intellj Idea中在提交代码时如何忽略文件和目录
    1. Settings→Editor→FileTypes;2.找到Ignorefilesandfolders,添加自己需要过滤的内容(忽略文件和目录)a:末尾添加内容,如:*.imlb:直接按我们常用的配置覆盖已有内容......
  • Windows 10, version 22H2 (released Oct 2022) 简体中文版、英文版下载
    请访问原文链接:https://sysin.org/blog/windows-10/,查看最新版。原创作品,转载请保留出处。Windows10版本信息2022/10/19从Windows10版本21H2开始,Windows10版......
  • E. Selling Souvenirs 不会做
    ​​http://codeforces.com/contest/808/problem/E​​不理解为什么dp={cost,cnt1,cnt2}可以而dp={cost,cnt1,cnt2,cnt3}不可以上面那个不可以的例子是:  但是这......
  • 图像调色处理软件:Picture Instruments Image 2 LUT Pro for Mac
    想要一款图像调色软件?小编为大家推荐Image2LUTProMac版,一款专业的图像调色小工具。Image2LUTProMac版提供了一些非常有用的选项。除了着色的一般强度,您还可以控制......
  • powershell 笔记
    PowerShellhttps://learn.microsoft.com/zh-cn/powershell/scripting/how-to-use-docs?view=powershell-7.2环境变量#读取指定环境变量PS>$env:windirC:\WINDOWS......
  • class对象功能概述和获取Field功能
    class对象功能概述获取功能:1、获取成员变量们Fileld[]getFields()FileldgetFileld(Stringname).Fileld[]getDeclaredFilds()FiledgetDeclaredField(Stringn......
  • Linux shell 常用函数
    *以下函数或文件,在某些发行版本系统不支持,请先测试确认是否可用。 ####  生成连续的数字  ####  方式一: [1]正序:{1..16}倒序:{16..1}示例:forni......
  • Panel容器
    Panel容器的作用,可以呈放其他控件的容器属性:Anchor,Dock 知识点1:实现如下功能,学习动态添加控件和遍历控件的方法。   代码:usingSystem;usingSystem.Collec......