vue2使用v-viewer图片预览:打开页面自动预览,禁止关闭预览,解决在微信浏览器的页面点击事件老是触发预览初始化的问题

1、安装:

npm install v-viewer viewerjs

2、在 main.js 中全局注册:

import Viewer from 'v-viewer';
import 'viewerjs/dist/viewer.css';
Vue.use(Viewer );
//配置项(可选,根据需求调整)
// Vue.use(Viewer, {
//   defaultOptions: {
//     zIndex: 9999, // 预览弹窗层级
//     // toolbar: true, // 是否显示工具栏(缩放、旋转等按钮)
//     toolbar: false, // 是否显示工具栏(缩放、旋转等按钮)
//     navbar: true, // 可选:同时隐藏底部缩略图导航
//     title: false, // 可选:隐藏标题栏
//     clickToClose: false, // 禁止点击阴影处关闭预览
//     zoomRatio: 0.1, // 每次缩放的比例
//     minZoomRatio: 0.1, // 最小缩放比例
//     maxZoomRatio: 10, // 最大缩放比例
//     toggleOnDblclick: false, // 双击是否切换缩放状态
//     // 更多配置参考:https://github.com/fengyuanchen/viewerjs#options
//   }
// });

3、使用:解决在微信浏览器的页面点击事件老是触发预览初始化的问题

文档:https://mirari.cc/posts/v-viewer
在这里插入图片描述

<template><div id="PDA_PP"><div class="navbar" @click.stop><i class="el-icon-arrow-left"></i><span>用心软件</span><i class="el-icon-more" @click="bottomDrawer"></i></div><div class="viewer" ref="imgContainer" v-viewer.static="viewerOptions"><img class="image" v-for="(item, index) in srcList" :key="index" :src="item"></div><el-drawer :with-header="false" :visible.sync="drawer" direction="btt" custom-class="btt-custom-drawer" :before-close="handleClose"><el-button plain class="el-drawer-item">设为默认</el-button><el-button plain class="el-drawer-item">删除图片</el-button><el-button plain class="el-drawer-item">手机拍照</el-button><el-button plain class="el-drawer-item">从手机相册选择</el-button><el-button plain class="el-drawer-item" @click="handleClose">取消</el-button></el-drawer></div>
</template>
<script>
export default {data() {return {imgdata: [{ id: 0, pjname: '大灯', pjcode: '33101', url: 'http://gzyxdoc.oss-cn-shenzhen.aliyuncs.com/doc/2025/04/d9d60e4f7bc8f5737c282a388e73eedd.png' },{ id: 1, pjname: '大灯', pjcode: '33101', url: 'http://gzyxdoc.oss-cn-shenzhen.aliyuncs.com/doc/2025/04/a99c2e5b3121012cddef0bbbcb1153ee.png' },{ id: 2, pjname: '大灯', pjcode: '33101', url: 'http://gzyxdoc.oss-cn-shenzhen.aliyuncs.com/doc/2025/06/ee3e8506953f3f3c9f4f014342e66071image/png' },],srcList: [],viewerOptions: {className: 'mobile-custom-viewer',zIndex: 999,inline: false,toolbar: false,navbar: true,title: false,button: false,backdrop: 'static',//禁止点击阴影关闭预览hide: function () {return true},},mIndex: 1,mItemInfo: {},drawer: false,}},created() {this.imgdata.forEach((item, index) => {this.srcList.push(item.url)});},mounted() {setTimeout(() => {const viewer = this.$refs.imgContainer.$viewer;console.log(viewer)if (viewer) viewer.show();this.update_mindex(this.mIndex);}, 100);},methods: {update_mindex(index) {const viewer = this.$refs.imgContainer.$viewer;if (viewer) viewer.view(index);},getCurrentIndex() {const viewer = this.$refs.imgContainer.$viewer;if (viewer) {console.log('当前显示的是第', viewer.index, '张图片')this.mIndex = viewer.index;this.mItemInfo = this.imgdata[this.mIndex];console.log(this.mItemInfo)}},bottomDrawer() {this.drawer = true;this.getCurrentIndex()},handleClose() {this.drawer = false;},},
}
</script>
<style lang="">
html,
body {width: 100%;height: 100%;padding: 0;margin: 0;background: #000;
}
#PDA_PP {width: 100%;height: 100%;overflow: hidden;background: #000;
}
.navbar {color: #fff;display: flex;align-items: center;justify-content: space-between;height: 50px;font-size: 18px;border-bottom: 1px solid #5c5c5c;position: relative;z-index: 1002;background: #000;
}
.navbar > i {padding: 10px 15px;
}
.viewer {display: flex;line-height: 20px;padding: 10px;margin: 10px;border-radius: 8px;display: none;
}
.image {width: 80px;height: 80px;margin-right: 10px;
}.mobile-custom-viewer .viewer-navbar {background: #fff;border-top-left-radius: 20px;border-top-right-radius: 20px;
}.btt-custom-drawer {border-top-left-radius: 20px;border-top-right-radius: 20px;height: auto !important;
}
.btt-custom-drawer .el-drawer__body .el-drawer-item {display: block;width: 100%;font-size: 16px;color: #000;height: 50px;line-height: 50px;text-align: center;margin: 0;padding: 0;outline: 0;border: 0;border-top: 1px solid #f7f7f7;font-family: 微软雅黑;background: #fff;
}
.btt-custom-drawer .el-drawer__body .el-drawer-item:hover {background: #fff;
}
.btt-custom-drawer .el-drawer__body .el-drawer-item:disabled {color: #999;
}
.btt-custom-drawer .el-drawer__body .el-drawer-item:first-child {border-top: 0;
}
.btt-custom-drawer .el-drawer__body .el-drawer-item:last-child {border-width: 4px;
}
</style>

4、效果图:
在这里插入图片描述

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

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

相关文章

开源 Arkts 鸿蒙应用 开发(八)多媒体--相册和相机

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

无线通信资源分配相关算法

1.Maximum Clique First (MCF)是一种启发式图着色算法&#xff08;heuristic graph coloring algorithm&#xff09;&#xff0c;它的核心思想是&#xff1a;优先为图中最大团&#xff08;maximum clique&#xff09;中的顶点分配不同的颜色&#xff0c;然后再依次为其他顶点上…

Kafka监控体系搭建:基于Prometheus+JMX+Grafana的全方位性能观测方案

为什么需要Kafka监控监控架构概述步骤一&#xff1a;部署JMX Exporter 1.1 下载JMX Agent1.2 创建指标暴露配置 步骤二&#xff1a;配置Kafka集成JMX 2.1 启动参数配置2.2 验证指标暴露 步骤三&#xff1a;配置Prometheus采集 3.1 修改Prometheus配置3.2 验证数据采集 步骤四&a…

stack 和 queue

目录 一、stack 1.1 stack 的介绍 1.2 stack的使用 1&#xff09;最小栈 2&#xff09;栈的弹出压入序列 3&#xff09;逆波兰表达式求值 1.3 stack 的模拟使用 二、queue 2.1 queue的介绍 2.2 queue的使用 2.3 queue的模拟使用 三、容器适配器 3.1 什么是容器适配…

sqlsuger 子表获取主表中的一个字段的写法

在使用 SQL 语言进行数据库操作时&#xff0c;如果你想要从子表获取数据&#xff0c;同时关联到主表中的一个字段&#xff0c;通常我们会使用 SQL 的 JOIN 语句。JOIN 语句允许你通过一个或多个共同的字段将两个或多个表连接起来。这里我将展示几种常见的 JOIN 类型&#xff08…

Docker配置Gitlab-runner实现自动化容器化部署前端项目

叠甲前言 本文仅作为个人学习GitLab的CI/CD功能记录&#xff0c;不适合作为专业性指导&#xff0c;如有纰漏&#xff0c;烦请君指正。 云主机注册Gitlab Runner 自动化构建部署的弊端 在前一文中&#xff0c;我们在Linux云主机上注册了Gitlab-runner, 每次在gitlab流水线上发…

MySQL介绍和MySQL包安装

文章目录MySQL介绍和安装1.MySQL介绍1.1 MySQL 的定义1.2 MySQL 的特点1.3 MySQL 的应用领域1.4 MySQL 的存储引擎1.5 MySQL 的架构1.6 MySQL 的优势和局限性1.7 MySQL 的未来发展趋势2.MySQL安装2.1 主机初始化2.1.1 设置网卡名2.1.2 设置ip地址2.1.3 配置镜像源2.1.4 关闭防火…

J2EE模式---视图助手模式

视图助手模式基础概念视图助手模式&#xff08;View Helper Pattern&#xff09;是一种结构型设计模式&#xff0c;其核心思想是将视图层中复杂的逻辑提取到独立的助手类中&#xff0c;使视图代码更加简洁、易于维护。视图助手通常提供一系列工具方法&#xff0c;用于处理格式化…

开源的语音合成大模型-Cosyvoice使用介绍

1 模型概览 CosyVoice 是由阿里巴巴达摩院通义实验室开发的新一代生成式语音合成大模型系列&#xff0c;其核心目标是通过大模型技术深度融合文本理解与语音生成&#xff0c;实现高度拟人化的语音合成体验。该系列包含初代 CosyVoice 及其升级版 CosyVoice 2.0&#xff0c;两者…

深度学习·CLIP

CLIP 数据大小 4亿个文本-图像对&#xff0c;而且是高质量的 预训练方法 Text encoder“The text sequence is bracketed with [SOS] and [EOS] tokens and the activations of the highest layer of the transformer at the [EOS] token are used as the feature representati…

美光MTFC8GAKAJCN-4M_IT型eMMC应用介绍

1.1 芯片订购信息美光MTFC8GAKAJCN-4M_IT型eMMC&#xff0c;容量8GB&#xff0c;153-ball VFBGA封装。1.2 eMMC料号含义2.1 特性•多媒体卡&#xff08;MMC&#xff09;控制器和NAND闪存•153球FBGA封装&#xff08;符合RoHS标准&#xff0c;环保封装&#xff09;•VCC&#xf…

面向对象分析与设计40讲(6)设计原则之开闭原则

文章目录 一、概念 二、示例(C++ 实现) 1. 违反开闭原则的示例 2. 遵循开闭原则的示例 一、概念 开闭原则(Open-Closed Principle,OCP)是面向对象设计中的重要原则,由 Bertrand Meyer 提出,核心思想可以概括为:对扩展开放,对修改关闭。 具体来说,一个软件实体(如类…

[Linux入门] Linux 网络设置入门:从查看、测试到配置全攻略

目录 一、查看网络信息&#xff1a;了解你的网络状态 1️⃣核心工具&#xff1a;ip命令&#xff08;替代ifconfig&#xff09; <1> 基本语法&#xff1a; <2> 实用操作示例&#xff1a; 2️⃣查看路由表&#xff1a;route命令 3️⃣查看网络连接状态&#xf…

TyFlow:三维领域的粒子特效革命者

在动态模拟与视觉特效领域&#xff0c;​​TyFlow​​ 作为 3ds Max 中诞生的一款革命性粒子系统插件&#xff08;后来也支持独立开发&#xff09;&#xff0c;正在彻底改变艺术家们创作复杂动力学效果的方式。它以其无与伦比的灵活性、强大的计算能力和开创性的技术理念&#…

本地一键部署 Spark-TTS,支持Mac和Windows

Spark-TTS是一个文本转语音(TTS)的项目&#xff0c;零样本语音克隆逼真&#xff0c;多语言支持&#xff0c;语音参数可控。使用魔当(LM Downloader)&#xff0c;可以实现Spark-TTS的本地一键部署。 注意 如果使用Windows&#xff0c;推荐用NVIDIA显卡&#xff0c;生成速度较快…

传统时间:Date日期类,SimpleDateFormat,Calendar

目录DateSimpleDateFormatCalendarDate 代表的是日期和时间 常见构造器和方法&#xff1a; 构造器说明public Date()创建一个Date对象&#xff0c;代表的是系统当前此刻日期时间public Date(long time)把时间毫秒值转换成Date日期对象 常见方法说明public long getTime()返…

linus 环境 tomcat启动日志分隔

1.定义可执行文件&#xff1a;tomcatlog9090.sh fsize$(ls -l /data/tomcat-cms_9090/logs/catalina.out | cut -d -f 5)if [ $fsize -gt 40960000 ]; thenextdatedate %Y_%m_%d_%k_%Mdatapath/data/tomcat-cms_9090/logscd /data/tomcat-cms_9090/logscp catalina.out catali…

解密 Base64 编码:从原理到应用的全面解析

在网络传输、数据存储的世界里&#xff0c;Base64 编码如同一座隐形的桥梁&#xff0c;默默承担着重要的角色。当你发送邮件附件、在网页中嵌入图片&#xff0c;或是处理一些特殊格式的数据时&#xff0c;都可能在不知不觉中与它打交道。那么&#xff0c;Base64 编码究竟是什么…

C++实现Adam与RMSProp优化算法

C++中实现Adam和RMSProp优化算法 以下是一些关于C++中实现Adam和RMSProp优化算法的实用示例和资源,涵盖不同场景和应用。由于篇幅限制,完整代码,但提供关键实现片段、库使用方法和学习资源。 基础Adam优化器实现 Adam优化器实现 #include <vector> #include <c…

【物联网】基于树莓派的物联网开发【16】——树莓派GPIO控制LED灯实验

场景介绍 掌握GPIO引脚连接双色LED模块&#xff0c;编写Python程序代码&#xff0c;实现GPIO控制点亮双色LED灯&#xff01; 窗口查看引脚编号 1、在终端输入指令&#xff1a;pinout2、使用树莓派输入gpio readall命令查看pin状态 输入以下命令安装Git sudo apt install git-co…