vue2/vue3实现图片预览

在现代前端开发中,图片预览是一个常见的需求,尤其是在电商网站、社交平台等场景下。用户点击图片时,希望能够展示一张大图并支持放大、缩小、滚动等交互功能。今天,我们将介绍如何在 Vue 中实现一个简洁高效的图片预览功能,核心使用 v-viewer 和底层的 Viewer.js

1. 什么是 v-viewer?

v-viewer 是一个基于 Viewer.js 的 Vue 图片查看器插件,提供了便捷的 API 和 Vue 组件封装,能够快速实现图片预览功能。Viewer.js 是一个轻量级、易于集成的图片查看器,支持图片放大、缩小、旋转等功能。

2. 安装 v-viewer

首先,我们需要安装 v-viewer。使用 npm 可以方便地安装这个包:

npm install v-viewer@next viewerjs
3. 在 Vue 项目中使用 v-viewer
3.1. 引入 v-viewer

在你的 Vue 项目中,引入 v-viewer 并进行全局注册:

import { createApp } from 'vue'
import App from './App.vue'
import 'viewerjs/dist/viewer.css'
import VueViewer from 'v-viewer'
const app = createApp(App)
app.use(VueViewer)
app.mount('#app')
3.2. 在组件中使用

在你的组件中,可以直接使用 v-viewer 提供的指令来实现图片预览功能。通过 v-viewer 指令,你可以标记需要预览的图片元素。

<template><div><!-- 指令方式调用--><div class="images" v-viewer><img v-for="src in images" :key="src" :src="src"></div><!-- 组件方式调用--><viewer :images="images"><img v-for="src in images" :key="src" :src="src"></viewer><!-- api方式调用 --><button type="button" @click="show">Click to show</button></div>
</template>
<script lang="ts">import { defineComponent } from 'vue'export default defineComponent({data() {return {images: ["https://picsum.photos/200/200","https://picsum.photos/300/200","https://picsum.photos/250/200"]};},methods: {show() {this.$viewerApi({images: this.images,})},},})
</script>

 参看文献:https://mirari.cc/posts/vue3-viewer#viewer%25E7%259A%2584%25E9%2585%258D%25E7%25BD%25AE%25E9%25A1%25B9-%25E6%2596%25B9%25E6%25B3%2595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/886146.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flink同步mysql数据表到pg库

1.关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld systemctl status firewalldvi /etc/selinux/config 修改为disabled2.安装java8 yum list java-1.8* yum install java-1.8.0-openjdk* -yjava -version3.下载和部署postgresql 下载地址&#…

SQL Server 的结构,现在看也不算差

&#xff08;1&#xff09;单机管理架构&#xff1a;由同一台计算机包办数据库系统的所有工作&#xff0c;即数据库服务器端和客户端都在同一台计算机上。 &#xff08;2&#xff09;主从式管理架构&#xff1a;在一台主机上安装数据库服务器&#xff0c;另外一些计算机作为客…

HBase理论_HBase架构组件介绍

近来有些空闲时间&#xff0c;正好最近也在开发HBase相关内容&#xff0c;借此整理一下学习和对HBase组件的架构的记录和个人感受&#xff0c;付出了老夫不少心血啊&#xff0c;主要介绍的就是HBase的架构设计以及我的拓展内容。内容如有不当或有其他理解 matirx70163.com HB…

第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)

本芯片使用的是STM32F103C8T6型号 STM32F103C8T6是STM32F1系列中的一种较常用的低成本ARM Cortex-M3内核MCU&#xff0c;具有丰富的通信接口&#xff0c;包括USART、SPI、I2C等。下面是该芯片上通信接口的管脚分布、每个接口的工作模式、常用应用场景和注意事项。 1. USART (通…

ODOO学习笔记(8):模块化架构的优势

灵活性与可定制性 业务流程适配&#xff1a;企业的业务流程往往因行业、规模和管理方式等因素而各不相同。Odoo的模块化架构允许企业根据自身的具体业务流程&#xff0c;选择和组合不同的模块。例如&#xff0c;一家制造企业可以启用采购、库存、生产和销售模块&#xff0c;并通…

搜维尔科技:Manus VR数据手套集成,遥操作五指灵巧手解决方案

Manus VR数据手套集成&#xff0c;遥操作五指灵巧手解决方案 搜维尔科技&#xff1a;Manus VR数据手套集成&#xff0c;遥操作五指灵巧手解决方案

MATLAB课程:AI工具辅助编程——MATLAB+LLMs

给出一些可能有用的方法辅助大家写代码。 方法一&#xff1a;MATLAB软件LLM (不太懂配置的同学们为了省事可以主要用这个方法) 方法一特别针对本门MATLAB教学课程&#xff0c;给出一种辅助ai工具的操作指南。MATLAB中可以安装MatGPT插件&#xff0c;该插件通过调用ChatGPT的API…

C++二叉平衡搜索树:AVL树的插入、删除与平衡

目录 引言 AVL树的概念 AVL树节点的定义 AVL树的插入 AVL树的基本结构 AVL树的插入 第一步&#xff1a;按搜索树的规则进行插入 第二步&#xff1a;更新平衡因子 1、父节点的平衡因子为 parent->bf 0 2、更新完 parent 的 bf&#xff0c;如果 parent->bf 1…

机器学习(1)

一、机器学习 机器学习&#xff08;Machine Learning, ML&#xff09;是人工智能&#xff08;Artificial Intelligence, AI&#xff09;的一个分支&#xff0c;它致力于开发能够从数据中学习并改进性能的算法和模型。机器学习的核心思想是通过数据和经验自动优化算法&#xff…

【vue3中el-table表格高度自适应】

分享一种开发中遇到的比较方便的表格高度自适应方案 template代码 <div class"page"><div class"table_wrap"><el-table></el-table></div> </div>css代码 将el-table设置为绝对定位&#xff0c;相对于父元素定位且…

【Kafka】集成案例:与Spark大数据组件的协同应用

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《大数据前沿&#xff1a;技术与应用并进》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是kafka 2、Kafka 的主要特性 3、Kafka 的…

【卡尔曼滤波】递归算法Recursive的应用 C语言、Python实现(Kalman Filter)

【卡尔曼滤波】递归算法Recursive的应用 C语言、Python实现&#xff08;Kalman Filter&#xff09; 更新以gitee为准&#xff1a; gitee地址 文章目录 递归算法算术平均的递归算法例子卡尔曼滤波递归Python实现C语言实现与普通卡尔曼滤波的比较附录&#xff1a;压缩字符串、大…

C#界面设计

C#界面设计通常指的是使用C#编程语言及其相关的图形用户界面&#xff08;GUI&#xff09;框架&#xff08;如Windows Forms、WPF&#xff08;Windows Presentation Foundation&#xff09;或Uno Platform等&#xff09;来创建应用程序的用户界面。以下是一些关于C#界面设计的基…

python+pptx:(二)添加图片、表格、形状、模版渲染

目录 图片 表格 合并单元格 填充色、边距 写入数据 形状 模版渲染 上一篇&#xff1a;pythonpptx&#xff1a;&#xff08;一&#xff09;占位符、文本框、段落操作_python输出ppt母版占位符标号-CSDN博客 from pptx import Presentation from pptx.util import Cm, In…

【Windows】CMD命令学习——系统命令

CMD&#xff08;命令提示符&#xff09;是Windows操作系统中的一个命令行解释器&#xff0c;允许用户通过输入命令来执行各种系统操作。 系统命令 systeminfo - 显示计算机的详细配置信息。 tasklist - 显示当前正在运行的进程列表。 taskkill - 终止正在运行的进程。例如&am…

Java的栈与队列以及代码实现

Java栈和队列 栈的概念&#xff08;Stack&#xff09;栈的实现代码队列&#xff08;Queue&#xff09;模拟实现队列(双链表实现)循环队列&#xff08;循环数组实现&#xff09;用队列实现栈用栈来实现队列总结 栈的概念&#xff08;Stack&#xff09; 栈是常见的线性数据结构&…

Node.js is Web Scale

点击“打开/下载题目”进去看看情况&#xff1a; 为了方便查看翻译成中文简体来看&#xff1a; emmm&#xff0c;看不懂什么意思&#xff0c;查看源代码&#xff0c;js表示是一段JavaScript代码&#xff0c;丢给AI分析一下&#xff1a; // server.js const express require(&…

Unity编辑器的高级扩展技术

一、Unity编辑器扩展的基础知识 Unity编辑器提供了丰富的API&#xff0c;允许开发者创建自定义的编辑器窗口、属性和工具。这些API主要分布在UnityEditor命名空间中&#xff0c;主要包括以下几个类别&#xff1a; Editor Windows&#xff1a;自定义窗口&#xff0c;用于提供独…

缓冲区溢出,数据被踩的案例学习

继续在ubuntu上学习GDB&#xff0c;今天要学习的是缓冲区溢出。 程序的地址&#xff1a; GitHub - gedulab/gebypass: bypass password by heap buffer overflow 编译的方法&#xff1a; gcc -g -O2 -o gebypass gebypass.c 照例设置一下科学shangwang代理&#xff1a; e…

数字人直播骗局大曝光!真假源码厂商搭部署的源码有何差异?

随着数字人直播技术的不断发展成熟&#xff0c;它所蕴含着的市场前景和收益潜力开始逐渐显化&#xff0c;使得有意向入局的人数持续增多的同时&#xff0c;也让不少骗子看到了可乘之机&#xff0c;从而炮制出了一个又一个的数字人直播骗局。 其中&#xff0c;最为经典的便是dai…