f_k_y_u 2021-12-07 11:20 采纳率: 93.8%
浏览 97
已结题

vue.js 使用 elementUI 通过for循环实现多个图片大图预览,为什么每次点击其他图片都展示第一张图片


<div id="app">
<div class="demo-image__preview"  v-for="(imgfile) in url">
  <el-image 
    style="width: 100px; height: 100px"
    :src="imgfile.value" 
    :preview-src-list="srcList">
  </el-image>
</div>
</div>

var Main = {
    data() {
      return {
        url: [
{value: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'},
{value: 'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg'}
],
        srcList: ['https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg'
        ]
      }
    }
  }

img


图片是通过for循环遍历出来的,但是element的大图预览每次无论点击第几张图片,展示的都是第一张,想让他点击第二张图片就展示对应的第二张图片的大图应该如何操作?感谢

  • 写回答

3条回答 默认 最新

  • 前端阿彬 前端领域新星创作者 2021-12-07 11:55
    关注
    1. 我觉得你没理解src 和preview-src-list 这两个属性的意思。
      preview-src-list是预览的图片数组,虽然你图片显示是v-for渲染了,但是预览的数组是固定的那俩,也就是刚打开预览肯定是显示第一张,点切换按钮就看到第二张了。

    img

    1. 你应该是想实现显示两张图片并各自预览
    
    <div id="app">
    <div class="demo-image__preview"  v-for="(imgfile) in url">
      <el-image 
        style="width: 100px; height: 100px"
        :src="imgfile.value" 
        :preview-src-list="imgfile.srcList">
      </el-image>
    </div>
    </div>
    var Main = {
        data() {
          return {
            url: [
    {value: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'srcList:['https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg']
    },
    {value: 'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg',
    srcList:['https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg'] }
    ]
          }
        }
      }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • 落落Plus 2021-12-07 11:24
    关注

    你直接用el-image-viewer 这个组件

    <template>
        <el-image-viewer
            v-if="showViewer"
            :initialIndex="initialIndex"
            :on-close="closeViewer"
            :url-list="imageList"/>
    </template>
    <script>
    import ElImageViewer from 'element-ui/packages/image/src/image-viewer';
    export default {
        components: { ElImageViewer },
        props: {
            imageList: {
                type: Array,
                require: true
            },
            initialIndex: {
                type: Number,
                default: 0
            },
        },
        data() {
            return {
                showViewer: false
            }
        },
        methods: {
            show() {
                this.showViewer = true;
                document.body.style.overflow = 'hidden'
            },
            // 关闭查看器
            closeViewer() {
                this.showViewer = false;
                this.$emit('close')
                document.body.style.overflow = ''
            }
        },
    }
    </script>
    
    
    
    评论 编辑记录
  • .︶ㄣ☆.'龍 2021-12-07 11:25
    关注

    因为预览的属性是个数组,它是根据数组中图片的顺序进行预览的。可以把srcList这个属性设置成当前的图片,即::preview-src-list="[imgfile.value]"

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 已采纳回答 12月7日
  • 创建了问题 12月7日

悬赏问题

  • ¥15 我用C语言easyx图形库绘制了一个3d游戏方框透视,但进入游戏时候鼠标准星对准方框边缘 鼠标光标就会弹出来这是啥情况怎样让光标对准绘制的方框点击鼠标不弹出光标好烦这样
  • ¥20 用Power Query整合的问题
  • ¥20 基于python进行多背包问题的多值编码
  • ¥15 相同型号电脑与配置,发现主板有一台貌似缺少了好多元器件似的,会影响稳定性和使用寿命吗?
  • ¥15 要求编写稀疏矩阵A的转置矩阵的算法
  • ¥15 编写满足以下要求的停车场管理程序,设停车场只有一个可停放n辆车的狭窄通道且只有一个大门可供车辆进出。
  • ¥15 C语言:数据子序列基础版
  • ¥20 powerbulider 导入excel文件,显示不完整
  • ¥15 用keil调试程序保证结果进行led相关闪烁
  • ¥15 paddle训练自己的数据loss降不下去