Vue实现点击图片放大显示功能

 更新时间:2023年03月30日 10:00:04   作者:早起的年轻人  
这篇文章主要为大家详细介绍了如何利用Vue实现点击图片放大显示功能,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的可以了解一下

方式一:列表中感应鼠标显示大图

我管理后台使用的是 element , 列表使用的是 el-tabe

  <el-table-column
    prop="identifImg"
    header-align="center"
    align="center"
    label="证件照"
    width="100">
    <template slot-scope="scope">
      <el-popover
        placement="top-start"
        trigger="hover">
        <div class="row_reserve"><img class="big-img" :src="scope.row.identifImg"/></div>
        <div slot="reference"><img class="td-img" :src="scope.row.identifImg"/></div>
      </el-popover>
    </template>
  </el-table-column>

在列表中实现放大图片使用的是 el-popover 使用说明文档

方式二:自定义通用组件实现

首先是自定义大图显示的通用组件:big-img.vue

<template>
  <div v-show="visible" @click="closeClick" class="showPhoto">
    <img class="img" :src="url" alt="图片加载失败" />
  </div>
</template>

<script>
  export default {
    props: {
      url: {
        type: String,
        default: "",
      },
      visible: {
        type: Boolean,
        default: false,
      },
    },
    methods: {
      closeClick() {
        //子组件可以使用 $emit 触发父组件的自定义事件
        this.$emit("closeClick");
      },
    },
  };
</script>
<style lang="css" scoped>
  .showPhoto {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .showPhoto .img {
    display: block;
    margin: auto 0;
    max-width: 20%;
    text-align: center;
  }
</style>

然后在使用到文件中 引入组件并注册组件

  import BigImg from "../components/big-img"

  export default {
    data() {
     
      return {
        photoVisible: false,
        bigImgUrl: ""
      };
    },
    components:{
      BigImg
    },
    methods: {
      
      showBigImage(e) {//点击图片函数,点击后,把photoVisible设置成true
        if (e != "") {
          this.photoVisible = true;
          this.bigImgUrl = e;
        }
      },
  };

然后在图片 img 处使用

<template>
  <div>
	<!-- imgBaseUrl为图片URL-->
	<img v-if="imgBaseUrl" 
	     style="width:100%" 
	     :src="imgBaseUrl"   
	     @click.self="showBigImage(imgBaseUrl)">

	<img
	    @click.self="showBigImage($event)"
	    src="~@/assets/img/liaojiewt/202141.png"
	    alt=""
	/>
	<!--显示放大图片的组件-->
	<BigImg :visible="photoVisible" :url="bigImgUrl" @closeClick="()=>{photoVisible=false}"></BigImg>
  </div>
</template>

到此这篇关于Vue实现点击图片放大显示功能的文章就介绍到这了,更多相关Vue点击图片放大内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue-cli+webpack项目 修改项目名称的方法

    vue-cli+webpack项目 修改项目名称的方法

    下面小编就为大家分享一篇vue-cli+webpack项目 修改项目名称的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue3中reactive变量重新赋值无法响应的3种处理方法

    Vue3中reactive变量重新赋值无法响应的3种处理方法

    这篇文章主要给大家介绍了关于Vue3中reactive变量重新赋值无法响应的3种处理方法,在Vue3中可以使用reactive函数将一个普通对象转换为响应式对象,需要的朋友可以参考下
    2023-08-08
  • Vue中computed和watch有哪些区别

    Vue中computed和watch有哪些区别

    这篇文章主要介绍了Vue中computed和watch有哪些区别,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-12-12
  • 从0搭建vue3组件库Input组件

    从0搭建vue3组件库Input组件

    这篇文章主要介绍了从0搭建vue3组件库Input组件,每个功能的实现代码都做了精简,方便大家快速定位到核心逻辑,接下来就开始对这些功能进行实例代码讲解,需要的朋友可以参考下
    2022-11-11
  • vuex与组件联合使用的方法

    vuex与组件联合使用的方法

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。这篇文章主要介绍了vuex与组件联合使用的方法,需要的朋友可以参考下
    2018-05-05
  • 关于VueSSR的一些理解和详细配置

    关于VueSSR的一些理解和详细配置

    这篇文章主要介绍了关于VueSSR的一些理解和详细配置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • vue中下载文件的方法示例详解

    vue中下载文件的方法示例详解

    这篇文章主要介绍了vue中下载文件的方法,通过实例代码讲解了下载后端返回文件和下载本地文件,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • Vue格式化数据后切换页面出现NaN问题及解决

    Vue格式化数据后切换页面出现NaN问题及解决

    这篇文章主要介绍了Vue格式化数据后切换页面出现NaN问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 在Vue中实现对文件的压缩和解压缩功能

    在Vue中实现对文件的压缩和解压缩功能

    在前端开发中,文件的压缩和解压缩是经常需要用到的功能,尤其是在需要上传和下载文件的场景下,文件压缩可以减小文件大小,加快文件传输速度,提高用户体验,本文将介绍在Vue项目中如何进行文件的压缩和解压缩,需要的朋友可以参考下
    2023-11-11
  • vue elementUI select下拉框设置默认值(赋值)失败的解决

    vue elementUI select下拉框设置默认值(赋值)失败的解决

    这篇文章主要介绍了vue elementUI select下拉框设置默认值(赋值)失败的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10

最新评论