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
英文地址,請注明出處:http://en.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…