el-image实现点击哪张图片就预览哪张(element-plus)

<div v-for="(item,index) in url_list" :key="index" style="margin-right: 10px;">
      <el-image
         style="width: 100px; height: 100px"
         :src="item"
         fit="fill"
         :preview-src-list="getPrivewImages(index)">
      </el-image>
</div>

其中url_list就是你要展示的图片列表

const url_list = [
    'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
    'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
    'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
    'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
    'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
    'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
    'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg'
]

然后就是实现预览功能


function getPrivewImages (index) {
    let tempImgList = [...url_list];//所有图片地址
    if (index == 0) return tempImgList;
    // 调整图片顺序,把当前图片放在第一位
    let start = tempImgList.splice(index);
    let remain = tempImgList.splice(0, index);
    return start.concat(remain);//将当前图片调整成点击缩略图的那张图片
}

### 使用 Element Plus 的 `el-image` 组件实现图片预览功能 Element Plus 提供了强大的 `el-image` 和 `el-image-viewer` 组件来处理图片展示和预览需求。通过这些组件可以轻松实现图片预览功能,允许用户点击查看大图并切换浏览其他图片。 以下是详细的实现方法以及代码示例: #### 1. 安装依赖 确保已经安装了 Element Plus 库。如果尚未安装,请运行以下命令: ```bash npm install element-plus ``` #### 2. 引入必要的模块 为了使用 `el-image` 和 `el-image-viewer`,需要引入它们的相关样式和脚本。 ```javascript import { ElImage, ElImageViewer } from 'element-plus'; import 'element-plus/dist/index.css'; export default { components: { ElImage, }, }; ``` #### 3. 数据结构设计 定义一个数组用于存储图片列表及其对应的 URL 地址。 ```javascript data() { return { imageList: [ { url: 'https://example.com/image1.jpg' }, // 图片路径 { url: 'https://example.com/image2.jpg' }, { url: 'https://example.com/image3.jpg' }, ], previewIndex: null, // 当前预览的索引 showViewer: false, // 控制查看器是否显示 }; } ``` #### 4. HTML 结构 创建一个容器用来渲染多个 `el-image` 组件,并绑定点击事件触发图片预览逻辑。 ```html <template> <div class="image-container"> <!--图片 --> <el-image v-for="(item, index) in imageList" :key="index" style="width: 100px; height: 100px; margin-right: 10px;" :src="item.url" fit="cover" @click="handlePreview(index)" > </el-image> <!-- 预览弹窗 --> <el-image-viewer v-if="showViewer" :initial-index="previewIndex" :url-list="imageList.map(img => img.url)" @close="handleClose" /> </div> </template> ``` #### 5. 方法实现 编写两个主要的方法:一个是打开图片预览窗口;另一个是关闭预览窗口。 ```javascript methods: { handlePreview(index) { this.previewIndex = index; this.showViewer = true; }, handleClose() { this.showViewer = false; } } ``` #### 6. 样式优化(可选) 可以通过 CSS 自定义布局和外观效果。 ```css .image-container { display: flex; align-items: center; } .el-image:hover { cursor: pointer; transform: scale(1.1); transition: all 0.3s ease-in-out; } ``` --- ### 示例总结 上述代码展示了如何利用 Element Plus 的 `el-image` 和 `el-image-viewer` 来构建一个多图片预览的功能[^1]。此方案不仅简单易懂,还具有良好的用户体验和支持多种自定义选项。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值