首页 > 其他分享 >vue+js实现点击图片,图片放大

vue+js实现点击图片,图片放大

时间:2024-01-16 17:55:06浏览次数:27  
标签:style vue image js 点击 previewImage document previewContatiner 图片

1.首先在template中插入image,并赋予点击事件(这个时候是小图)

<template>
  <div>
    <img src="@/assets/images/avatar.png" @click="imgShow()" />  </div>
</template>

2.data定义点击放大的图片url,imageUrl为点击后放大的大图的url

data() {
    return {
      imageUrl: require('@/assets/images/avatar.png')
    }
  },

3.定义方法


methods: {
    imgShow() {
      const image = new Image()
      image.src = this.imageUrl
      image.onload = () => {
        //创建弹出层
        const previewContatiner = document.createElement('div')
        previewContatiner.style.position = 'fixed'
        previewContatiner.style.top = 0
        previewContatiner.style.bottom = 0
        previewContatiner.style.left = 0
        previewContatiner.style.right = 0
        previewContatiner.style.zIndex = 9999
        previewContatiner.style.backgroundColor = 'rgba(0,0,0,0.8)'
        previewContatiner.style.display = 'flex'
        previewContatiner.style.justifyContent = 'center'
        previewContatiner.style.alignItems = 'center'
        document.body.appendChild(previewContatiner)
        //在弹出层增加图片
        const previewImage = document.createElement('img')
        previewImage.src = this.imageUrl
        previewImage.style.maxWidth = '80%'
        previewImage.style.maxHeight = '80%'
        previewImage.style.zIndex = 9999
        previewContatiner.appendChild(previewImage)
        //点击弹出层,关闭预览
        previewContatiner.addEventListener('click', () => {
          document.body.removeChild(previewContatiner)
        })
      }
      image.onerror = function () {
        console.log('图片加载失败')
      }
    }
  }

效果:
image

参考下面的文档
https://www.cnblogs.com/zengyu123/p/17807768.html

标签:style,vue,image,js,点击,previewImage,document,previewContatiner,图片
From: https://www.cnblogs.com/haima/p/17968211

相关文章

  • 【Vue】Vue中 Vconsole 的使用 移动端调试神器vConsole
    【Vue】Vue中Vconsole的使用:https://blog.csdn.net/m0_53715482/article/details/125590180?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170539699116800182121287%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1705396991168......
  • Vue加element Ui 实现下载文件和进度条展示
    <template><el-progress:percentage="percentage"></el-progress><h1>{title}</h1><el-button:disabled="isDisabled"@click="getProgress">下载文件</el-button></template>......
  • vue-drawer
    <template><div><DrawerComponent/></div></template><script>importDrawerComponentfrom'./Drawer.vue'exportdefault{components:{DrawerComponent}}</script> <template><el......
  • 设计之道:图片素材选择与创意运用
    在现代设计领域,图片素材的选择与运用至关重要。一张优质的图片素材可以为设计增色添彩,提升作品的品质和视觉效果。那么,如何挑选合适的图片素材,并将其巧妙地融入设计中呢?本文将为您一一解答。免版素材库|一个覆盖广泛主题工具的高效在线平台(amd794.com)https://amd794.com......
  • nextjs使用prisma连接MySQL
      第一步npminstall@prisma/client 第二步npxprismainit 生成了文件 第三步,修改文件内容 第四步 第五步测试一下,执行npxprismadbpull我里面有一个user表的,拉下来这样显示了 ......
  • 在CMD和PowerShell下如何制作图片马
    目录在CMD中使用copy命令:在PowerShell中使用gc命令:总结:图片马通常是在图片文件中嵌入其他信息,以隐藏额外的数据。当使用命令行工具(如CMD或PowerShell)制作图片马时,copy命令和Get-Content(简写为gc)命令的目标是将一段数据(可能是一段脚本或其他二进制数据)嵌入到图片文......
  • javascript node.js , java jvm , jdk, jre 的理解。
    网上的截图: 来看看node.js     再来看看java.     ......
  • 1. Vue3源码解析之 源码调试
    前言本系列基于Vue3.2.37版本分析,可直接前往下载。使用步骤//1、安装pnpmnpmi-gpnpm//2、安装依赖pnpmi//3、package.json修改配置末尾添加-s开启sourcemap"build":"nodescripts/build.js-s"//添加`-s`原理是在`scripts/build.js`文件下设置......
  • svg使用封装-vue
    我们在项目中经常会使用到svg,这里对svg进行封装,以方便后续的使用。1.安装svg插件npmivite-plugin-svg-icons2.在vite.config.ts中引入,用来指定svg存放位置import{createSvgIconsPlugin}from"vite-plugin-svg-icons";import{resolve}from"path";constplugin......
  • 2. Vue3源码解析之 reactive
    前言我们知道Vue3中声明响应式是通过reactive和ref这两个函数,下面我们通过案例先来看下reactive是如何实现的。案例首先引入reactive和effect两个函数,之后声明obj响应式对象,接着又执行effect函数,该函数传入了一个匿名函数,最后两秒后又修改obj.name值。<!DOC......