vue 实现图片预览

4 篇文章 0 订阅
1 篇文章 0 订阅

vue实现图片预览

现在很多的项目里面图片展示缩略图,然后点击实现图片预览,放大的功能
最近我的项目里面就遇见了这么个场景,我选用了插件进行处理

下面说下实现步骤

1、首先安装插件

npm install vue-photo-preview --save

插件地址

2、在main.js里面引入,全局使用


import preview from 'vue-photo-preview'
import 'vue-photo-preview/dist/skin.css'
Vue.use(preview)

3、在页面里面使用

<template>
  <div class="content">
    <h1>preview图片预览Demo</h1>
    <img v-for="src in imgs" :src="src.url" :key="src.title" :preview="src.preview" :preview-text="src.title">
  </div>
</template>
<script>
export default {
  data() {
    return {
      imgs: [
        {
          url:
            "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
          title: "图片1",
          preview: "1"
        },
        {
          url:
            "https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg",
          title: "图片2",
          preview: "1"
        }
      ]
    };
  }
};
</script>
<style>
.content img {
  width: 80px;
  height: 80px;
  padding: 0 5px;
}
</style>

效果

移动端效果
在这里插入图片描述
在这里插入图片描述
pc的效果在这里插入图片描述

在这里插入图片描述

这里简单写了一个demo,可以根据自己的项目实际需求进行优化

  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
A: 在模板中使用v-for指令,循环展示图片列表,并针对每张图片绑定事件,当用户点击图片时,调用showPreview方法展示预览窗口。 ``` <template> <div> <div v-for="(img, index) in imageList" :key="index"> <img :src="img.src" @click="showPreview(index)" /> </div> <div v-show="showPreviewFlag" class="preview-container"> <img :src="previewImage" /> <span class="close-btn" @click="closePreview">×</span> </div> </div> </template> ``` 在脚本中定义data中的数据和方法,如图片列表、预览窗口显示标志、预览图片地址等,并实现showPreview和closePreview方法。 ``` <script> export default { data() { return { imageList: [ { src: 'https://example.com/img/1.jpg' }, { src: 'https://example.com/img/2.jpg' }, { src: 'https://example.com/img/3.jpg' } ], showPreviewFlag: false, previewImage: '' } }, methods: { showPreview(index) { this.previewImage = this.imageList[index].src this.showPreviewFlag = true }, closePreview() { this.showPreviewFlag = false } } } </script> ``` 通过CSS样式设置预览窗口的样式,如定位、宽高、边框、背景等。 ``` <style> .preview-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; } .preview-container img { max-width: 80%; max-height: 80%; border: 5px solid white; border-radius: 10px; } .close-btn { position: absolute; top: 10px; right: 10px; font-size: 30px; color: white; cursor: pointer; } </style> ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值