【Viewer.js】vue3封装图片查看器

devtools/2025/2/28 21:43:44/

效果图

在这里插入图片描述

需求

  • 点击图片放大
  • 可关闭放大的 图片

下载

cnpm in viewerjs

状态管理+方法

stores/imgSeeStore.js

import { defineStore } from 'pinia'
export const imgSeeStore = defineStore('imgSeeStore', {state: () => ({showImgSee: false,ImgUrl: '',}),getters: {},actions: {openImgShow(url) {this.ImgUrl = urlthis.showImgSee = true},resetSeeImg() {this.ImgUrl = ''this.showImgSee = false}}
})

封装的组件

<template><img ref="el" :src="ImgUrl" />
</template><script setup>javascript">
import "viewerjs/dist/viewer.css";
import Viewer from "viewerjs";
import { nextTick, onMounted, ref } from "vue";
import { storeToRefs } from "pinia";
import { globalStateStore } from "src/stores/globalState";const useGlobalStateStore = globalStateStore(),{ ImgUrl } = storeToRefs(useGlobalStateStore),{ resetSeeImg } = useGlobalStateStore;const el = ref();
onMounted(async () => {await nextTick();//   图片查看器关闭事件el.value.addEventListener("hide", () => resetSeeImg());new Viewer(el.value, {navbar: false,title: false,}).show();
});
</script>

使用

TestVue.vue

<template><!-- 这个是要点击查看的图片 --><img style="max-width: 200px" :src="img"@click="openImgShow(img)"/><img-see v-if="showImgSee" />
</template><script setup>javascript">
import { ref} from "vue";
import { storeToRefs } from "pinia";
import ImgSee from "src/components/ImgSee.vue";
import { imgSeeStore} from "src/stores/imgSeeStore";  const img = ref('/public/test.jpg')
const useImgSeeStore= imgSeeStore(),{ showImgSee } = storeToRefs(useImgSeeStore),{ openImgShow } = useImgSeeStore;
</script>

http://www.ppmy.cn/devtools/163452.html

相关文章

Ubuntu 下通过 Docker 部署 Nginx 服务器

Docker 和 Nginx 简介 Docker 是一种开源平台&#xff0c;旨在简化应用程序的开发、交付和运行。通过容器化技术&#xff0c;Docker 能够将应用及其依赖项封装在一个独立的环境中&#xff0c;确保在任何地方都能一致地运行。Nginx 是一款高性能的 HTTP 和反向代理服务器&#…

C++ 常见面试知识点

主要介绍C常见面试题 1、说一下你理解的C中的四种智能指针 常用接口 T* get(); T& operator*(); T* operator->(); T& operator(const T& val); T* release(); 将 封装在内部的指针置为nullptr, 但并不会破坏指针所指向的内容, 函 数返回的是内部指针置空之前…

零基础学QT、C++(四)QT程序打包

项目包 链接&#xff1a;https://pan.quark.cn/s/6a3455161757 记得创建yolo的数据库&#xff0c;并把数据导入 目录 一、把项目变为release版 二、运行项目 三、找到windeployqt6.exe 四、运行exe 五、无法定位重新输入点 学习视频 QT程序打包发布教程&#xff01;&#xff01…

[Lc优选算法] 双指针 | 移动零 | 复写零 | 快乐数

目录 &#x1f3a2;1.移动零 题解 代码 ⭕2.复写零 题解 代码 ⭕3.快乐数 题解 代码 &#x1f3a2;1.移动零 题目链接&#xff1a;283. 移动零 题目描述&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零…

Python 爬虫实战案例 - 获取社交平台事件热度并进行影响分析

目录 一、引言 二、数据爬取 三、数据分析 四、可视化展示 五、总结 一、引言 在当今信息爆炸的时代&#xff0c;社交平台成为了各类事件发酵和传播的重要场所。了解社交平台上事件的热度以及其潜在影响&#xff0c;对于舆情监测、市场营销、社会趋势分析等领域具有重要意…

前端性能测试面试题及参考答案

目录 前端性能测试中,首屏时间(FCP)和白屏时间的定义及测量方法是什么? 解释浏览器渲染过程中关键路径(Critical Rendering Path)的组成部分。 如何通过 Navigation Timing API 统计页面加载各阶段耗时? 什么是 LCP(Largest Contentful Paint)?如何优化? 前端性…

C#通过接口 继承接口的类 实现约束 对List内数据类型的值进行排序,可直接复制使用

工具类 通过接口 继承接口的类 实现约束 对List内数据类型的值进行排序,可直接复制使用 //工具类 Tools//说明接口的//1.先有接口 2.继承接口的类 3.实现约束public interface IComParable<T> //接口{int ComPareTo(T other); //在list的数组…

JMeter 的基础知识-安装部分

以下将从环境配置开始,为你详细介绍 JMeter 的基础知识,涵盖环境搭建、界面认知、测试计划创建、常用组件使用等方面内容。 1. 环境配置 1.1 安装 Java JMeter 是基于 Java 开发的,所以需要先安装 Java 开发工具包(JDK)。 下载 JDK:访问 Oracle 官方网站(https://www…