v-viewer
用於圖片瀏覽的Vue組件,支持旋轉、縮放、翻轉等操作,基於viewer.js。
從0.x遷移
你需要做的唯一改動就是手動引入樣式文件:
1
|
import 'viewerjs/dist/viewer.css'
|
安裝
使用npm命令安裝
使用
引入v-viewer及必需的css樣式,並使用Vue.use()注冊插件,之后即可使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<template> <div id="app"> |
以指令形式使用
只需要將v-viewer指令添加到任意元素即可,該元素下的所有img元素都會被viewer自動處理。
你可以像這樣傳入配置項: v-viewer="{inline: true}"
如果有必要,可以先用選擇器查找到目標元素,然后可以用el.$viewer來獲取viewer實例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<template> <div id="app"> <div class="images" v-viewer="{movable: false}"> <img v-for="src in images" :src="src" :key="src"> </div> <button type="button" @click="show">Show</button> </div> </template> <script> import 'viewerjs/dist/viewer.css' import Viewer from 'v-viewer' import Vue from 'vue' Vue.use(Viewer) export default { data() { images: ['1.jpg', '2.jpg'] }, methods: { show () { const viewer = this.$el.querySelector('.images').$viewer viewer.show() } } } </script>
|
指令修飾器
static
添加修飾器后,viewer的創建只會在元素綁定指令時執行一次。
如果你確定元素內的圖片不會再發生變化,使用它可以避免不必要的重建動作。
1 2 3
|
<div class="images" v-viewer.static="{inline: true}"> <img v-for="src in images" :src="src" :key="src"> </div>
|
以組件形式使用
你也可以單獨引入全屏組件並局部注冊它。
使用作用域插槽來定制你的圖片展示方式。
監聽inited事件來獲取viewer實例,或者也可以用this.refs.xxx.$viewer這種方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
<template> <div id="app"> <viewer :options="options" :images="images" @inited="inited" class="viewer" ref="viewer" > <template scope="scope"> <img v-for="src in scope.images" :src="src" :key="src"> {{scope.options}} </template> </viewer> <button type="button" @click="show">Show</button> </div> </template> <script> import 'viewerjs/dist/viewer.css' import Viewer from "v-viewer/src/component.vue" export default { components: { Viewer }, data() { images: ['1.jpg', '2.jpg'] }, methods: { inited (viewer) { this.$viewer = viewer }, show () { this.$viewer.show() } } } </script>
|
配置項 & 方法
請參考viewer.js.
插件配置項
name
- Type:
String
- Default:
viewer
如果你需要避免重名沖突,可以像這樣引入:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<template> <div id="app"> <div class="images" v-vuer="{movable: false}"> <img v-for="src in images" :src="src" :key="src"> </div> <button type="button" @click="show">Show</button> </div> </template> <script> import 'viewerjs/dist/viewer.css' import Vuer from 'v-viewer' import Vue from 'vue' Vue.use(Vuer, {name: 'vuer'}) export default { data() { images: ['1.jpg', '2.jpg'] }, methods: { show () { const vuer = this.$el.querySelector('.images').$vuer vuer.show() } } } </script>
|
defaultOptions
- Type:
Object
- Default:
undefined
如果你需要修改viewer.js的全局默認配置項,可以像這樣引入:
1 2 3 4 5 6 7
|
import Viewer from 'v-viewer' import Vue from 'vue' Vue.use(Viewer, { defaultOptions: { zIndex: 9999 } })
|
你還可以在任何時候像這樣修改全局默認配置項:
1 2 3 4 5 6
|
import Viewer from 'v-viewer' import Vue from 'vue' Vue.use(Viewer) Viewer.setDefaults({ zIndexInline: 2017 })
|