Vue圖片瀏覽組件v-viewer,支持旋轉、縮放、翻轉等操作

Vue圖片瀏覽組件v-viewer,支持旋轉、縮放、翻轉等操作

  • 之前用過viewer.js,算是市場上用過最全面的圖片預覽。
  • v-viewer,是基于viewer.js的一個圖片瀏覽的Vue組件,支持旋轉、縮放、翻轉等操作。

基本使用

安裝:npm安裝

npm install v-viewer

目錄結構如下
在這里插入圖片描述

注冊并使用

引入v-viewer及必需的css樣式,并使用Vue.use()注冊插件,之后即可使用。

  • import 'viewerjs/dist/viewer.css':引入必需的css樣式,詳見上目錄。
  • import VueViewer from 'v-viewer':引入v-viewer
  • Vue.use(VueViewer) :使用Vue.use()注冊插件
<template><div><viewer :images="images"><!-- style="width: 100px; height: 100px" 這是指定縮略圖大小--><img v-for="(src,index) in images" :key="index" :src="src" style="width: 100px; height: 100px" @click="show(index)"></viewer><!-- api --><button type="button" @click="show">Click to show</button></div>
</template>
<script>import 'viewerjs/dist/viewer.css'import VueViewer from 'v-viewer'import Vue from 'vue'Vue.use(VueViewer)export default {data() {return {images: ["https://picsum.photos/200/200","https://picsum.photos/300/200","https://picsum.photos/250/200"]};},methods: {show(index) {this.$viewerApi({images: this.images,options: {initialViewIndex: index,},})},},}
</script>

預覽時,如何打開指定圖片

主要取決于this.$viewerApi所傳參數對象:ViewerApiOptions
this.$viewerApi({images: this.images,options: {initialViewIndex: index,},
})
ViewerApiOptions分析
export interface ViewerApiOptions {images: Array<string | object>options?: ViewerJs.Options}
  • images:圖片列表(必填
  • options:參考ViewerJs.Options的參數👇(非必填,如果包含,它的類型必須是 ViewerJs.Options
ViewerJs.Options分析
export interface Options {backdrop?: boolean | string; // 是否顯示遮罩層,以及遮罩層的顏色或圖片button?: boolean; // 是否顯示右上角的關閉按鈕className?: string; // 給查看器容器添加自定義類名container?: string | HTMLElement; // 查看器的容器,可以是選擇器字符串或HTMLElement對象filter?: Function; // 圖片過濾函數,用于篩選需要顯示的圖片fullscreen?: boolean | FullscreenOptions; // 是否啟用全屏模式及全屏選項focus?: boolean; // 是否在查看時將焦點鎖定在查看器上hidden?(event: CustomEvent): void; // 查看器隱藏后的回調函數hide?(event: CustomEvent): void; // 查看器開始隱藏時的回調函數inheritedAttributes?: string[]; // 定義哪些圖片屬性應被查看器繼承initialCoverage?: number; // 圖片初始覆蓋率,決定圖片初始顯示的大小initialViewIndex?: number; // 初始查看圖片的索引inline?: boolean; // 是否以內聯方式(而不是模態方式)顯示查看器interval?: number; // 幻燈片播放時每張圖片的停留時間keyboard?: boolean; // 是否允許鍵盤控制loading?: boolean; // 是否顯示加載提示loop?: boolean; // 在最后一張圖片后是否循環到第一張圖片maxZoomRatio?: number; // 允許的最大縮放比例minHeight?: number; // 圖片的最小高度minWidth?: number; // 圖片的最小寬度minZoomRatio?: number; // 允許的最小縮放比例movable?: boolean; // 圖片是否可拖動move?(event: MoveEvent): void; // 圖片移動時的回調函數moved?(event: MovedEvent): void; // 圖片移動結束時的回調函數navbar?: boolean | Visibility; // 是否顯示導航欄play?(event: CustomEvent): void; // 點擊播放按鈕時的回調函數ready?(event: CustomEvent): void; // 查看器準備就緒時的回調函數rotatable?: boolean; // 圖片是否可旋轉rotate?(event: RotateEvent): void; // 圖片旋轉時的回調函數rotated?(event: RotatedEvent): void; // 圖片旋轉結束時的回調函數scalable?: boolean; // 圖片是否可縮放scale?(event: ScaleEvent): void; // 圖片縮放時的回調函數scaled?(event: ScaledEvent): void; // 圖片縮放結束時的回調函數show?(event: CustomEvent): void; // 查看器開始顯示時的回調函數shown?(event: CustomEvent): void; // 查看器顯示后的回調函數slideOnTouch?: boolean; // 是否允許觸摸滑動切換圖片stop?(event: CustomEvent): void; // 停止播放時的回調函數title?: boolean | Visibility | Function | [Visibility, Function]; // 圖片標題的顯示方式和內容toggleOnDblclick?: boolean; // 是否允許雙擊切換圖片的縮放狀態toolbar?: boolean | Visibility | ToolbarOptions; // 工具欄的顯示方式和選項tooltip?: boolean; // 是否顯示工具提示transition?: boolean; // 是否使用 CSS 過渡效果url?: string | Function; // 定義如何從圖片元素獲取大圖的 URLview?(event: CustomEvent): void; // 開始查看某張圖片時的回調函數viewed?(event: CustomEvent): void; // 查看某張圖片結束時的回調函數zIndex?: number; // 查看器的 z-index 值zIndexInline?: number; // 內聯查看器的 z-index 值zoom?(event: ZoomEvent): void; // 圖片縮放時的回調函數zoomOnTouch?: boolean; // 是否允許觸摸縮放圖片zoomOnWheel?: boolean; // 是否允許鼠標滾輪縮放圖片zoomRatio?: number; // 縮放比例的步進值zoomable?: boolean; // 圖片是否可縮放zoomed?(event: ZoomedEvent): void; // 圖片縮放結束時的回調函數
}

字段較多,并未一一進行嘗試實踐,可自行學習,這里initialViewIndex決定初始索引。

  • initialViewIndex:初始查看圖片的索引

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696868.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696868.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696868.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

費舍爾FISHER金屬探測器探測儀維修F70

美國FISHER LABS費舍爾地下金屬探測器&#xff0c;金屬探測儀等維修&#xff08;考古探金銀銅探寶等儀器&#xff09;。 費舍爾F70視聽目標ID金屬探測器&#xff0c;Fisher 金屬探測器公司成立于1931年&#xff0c;在實驗條件很艱苦的情況下&#xff0c;研發出了地下金屬探測器…

【Python】實現一個類似于Glass2k的Windows窗口透明化軟件

一 背景說明 網上看到一款Windows下的窗口透明化工具Glass2k&#xff08;Glass2k官網&#xff09;&#xff0c;可以簡單地通過快捷鍵實現任意窗口的透明化&#xff0c;還挺方便的&#xff0c;想用Python自己實現一下類似的功能。 軟件已經開源到&#xff1a;窗口透明化小工具開…

【Leetcode】889. 根據前序和后序遍歷構造二叉樹

文章目錄 題目思路代碼結果 題目 題目鏈接 給定兩個整數數組&#xff0c;preorder 和 postorder &#xff0c;其中 preorder 是一個具有 無重復 值的二叉樹的前序遍歷&#xff0c;postorder 是同一棵樹的后序遍歷&#xff0c;重構并返回二叉樹。 如果存在多個答案&#xff0c;…

CSS基礎屬性

【三】基礎屬性 【1】高度和寬度 &#xff08;1&#xff09;參數 width&#xff08;寬度&#xff09;&#xff1a;用于設置元素的寬度。可以使用具體的數值&#xff08;如像素值&#xff09;或百分比來指定寬度。 height&#xff08;高度&#xff09;&#xff1a;用于設置元…

Kubernetes 卷存儲 NFS | nfs搭建配置 原理介紹 nfs作為存儲卷使用

目錄 1、NFS介紹2、NFS服務部署2.1安裝nfs服務 (服務端配置)2.2啟動NFS服務2.3 服務檢查2.4 客戶端配置 3、nfs作為存儲卷使用3.1 nfs作為volume3.2 nfs存儲的缺點3.3 nfs作為PersistentVolum 4、nfs作為動態存儲提供5、總結 1、NFS介紹 NFS&#xff08;Network File System&a…

4.pom文件介紹Maven常用命令

1.pom.xml文件介紹. 1.1project標簽和modelVersion標簽介紹. pom.xml文件是maven的核心文件&#xff0c;POM(Project Object Model&#xff0c;項目對象模型)定義了項目的基本信息&#xff0c;用于描述如何構建&#xff0c;聲明項目依賴;&#xff1b; 1.2依賴坐標介紹. 依賴的…

得物面試:Kafka消息0丟失,如何實現?

得物面試&#xff1a;Kafka消息0丟失&#xff0c;如何實現&#xff1f; 尼恩說在前面 在40歲老架構師 尼恩的讀者交流群(50)中&#xff0c;最近有小伙伴拿到了一線互聯網企業如得物、阿里、滴滴、極兔、有贊、希音、百度、網易、美團的面試資格&#xff0c;遇到很多很重要的面…

新版Java面試專題視頻教程——多線程篇②

新版Java面試專題視頻教程——多線程篇② 0. 問題匯總0.1 線程的基礎知識0.2 線程中并發安全0.3 線程池0.4 使用場景 1.線程的基礎知識2.線程中并發鎖3.線程池3.1 說一下線程池的核心參數&#xff08;線程池的執行原理知道嘛&#xff09;3.2 線程池中有哪些常見的阻塞隊列Array…

高級語言期末2014級A卷

1.編寫函數 int delarr(int a[] ,int n)&#xff0c;刪除有n個元素的正整型數組a中所有素數&#xff0c;要求&#xff1a; 1&#xff09;數組a中剩余元素保持原來次序&#xff1b; 2&#xff09;將處理后的數組輸出&#xff1b; 3&#xff09;函數值返回剩余元素個數&#xff1…

MySQL索引面試題(高頻)

文章目錄 前言什么時候需要&#xff08;不需要&#xff09;)使用索引&#xff1f;有哪些優化索引的方法前綴索引優化索引覆蓋優化索引失效場景 總結 前言 今天來講一講 MySQL 索引的高頻面試題。主要是針對前一篇文章 MySQL索引入門&#xff08;一文搞定&#xff09;進行查漏補…

虛擬機的內存結構

一、摘要 熟悉 Java 語言特性的同學都知道&#xff0c;相比 C、C 等編程語言&#xff0c;Java 無需通過手動方式回收內存&#xff0c;內存中所有的對象都可以交給 Java 虛擬機來幫助自動回收&#xff1b;而像 C、C 等編程語言&#xff0c;需要開發者通過代碼手動釋放內存資源&…

MedicalGPT 訓練醫療大模型,實現了包括增量預訓練、有監督微調、RLHF(獎勵建模、強化學習訓練)和DPO(直接偏好優化)

MedicalGPT 訓練醫療大模型&#xff0c;實現了包括增量預訓練、有監督微調、RLHF(獎勵建模、強化學習訓練)和DPO(直接偏好優化)。 MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 訓練醫療大模型&#xff0c;實現了包括增量預訓練、有監督微…

Linux第63步_為新創建的虛擬機添加必要的目錄和安裝支持linux系統移植的軟件

1、創建必要的目錄 1)、創建“/home/zgq/linux/”目錄 打開終端&#xff0c;進入“/home/zgq/”目錄 輸入“mkdir linux回車”&#xff0c;創建“/home/zgq/linux/”目錄 輸入“ls回車”&#xff0c;列舉“/home/zgq/”目錄的所有文件和文件夾 創建好“/home/zgq/linux/”…

EIS(防抖):meshflow算法 C++實現

視頻防抖的應用 對視頻防抖的需求在許多領域都有。 這在消費者和專業攝像中是極其重要的。因此&#xff0c;存在許多不同的機械、光學和算法解決方案。即使在靜態圖像拍攝中&#xff0c;防抖技術也可以幫助拍攝長時間曝光的手持照片。 在內窺鏡和結腸鏡等醫療診斷應用中&…

Go 中的 init 如何用?它的常見應用場景有哪些呢?

嗨&#xff0c;大家好&#xff01;我是波羅學。本文是系列文章 Go 技巧第十六篇&#xff0c;系列文章查看&#xff1a;Go 語言技巧。 Go 中有一個特別的 init() 函數&#xff0c;它主要用于包的初始化。init() 函數在包被引入后會被自動執行。如果在 main 包中&#xff0c;它也…

QT基本組件

四、基本組件 Designer 設計師&#xff08;重點&#xff09; Qt包含了一個Designer程序&#xff0c;用于通過可視化界面設計開發界面&#xff0c;保存文件格式為.ui&#xff08;界面文件&#xff09;。界面文件內部使用xml語法的標簽式語言。 在Qt Creator中創建文件時&#xf…

滾雪球學Java(67):深入理解 TreeMap:Java 中的有序鍵值映射表

咦咦咦&#xff0c;各位小可愛&#xff0c;我是你們的好伙伴——bug菌&#xff0c;今天又來給大家普及Java SE相關知識點了&#xff0c;別躲起來啊&#xff0c;聽我講干貨還不快點贊&#xff0c;贊多了我就有動力講得更嗨啦&#xff01;所以呀&#xff0c;養成先點贊后閱讀的好…

機器人內部傳感器閱讀筆記及心得-位置傳感器-旋轉變壓器、激光干涉式編碼器

旋轉變壓器 旋轉變壓器是一種輸出電壓隨轉角變化的檢測裝置&#xff0c;是用來檢測角位移的&#xff0c;其基本結構與交流繞線式異步電動機相似&#xff0c;由定子和轉子組成。 旋轉變壓器的原理如圖1所示&#xff0c;定子相當于變壓器的一次側&#xff0c;有兩組在空間位置上…

MyBatis-Plus 優雅實現數據加密存儲

文章目錄 前言一、數據庫字段加解密實現1. 定義加密類型枚舉2. 定義AES密鑰和偏移量3. 配置定義使用的加密類型4. 加密解密接口5. 解密解密異常類6. 加密解密實現類6.1 AES加密解密實現類6.2 Base64加密解密實現類 7. 實現數據庫的字段保存加密與查詢解密處理類8. MybatisPlus配…

使用python進行量化交易

yfinance yfinance國內不能使用&#xff0c;可以使用tushare、akshare代替 import yfinance as yf# 輸入股票代碼 stock_symbol AAPL # 替換為你想要查詢的股票代碼# 獲取股票數據 data yf.download(stock_symbol)# 打印實時數據 print(data)pip install akshare import …