1农尖、安裝
npm install v-viewer --save
2屉符、安裝完在main.js里面引用(還要記得引用它的css樣式)下面有兩種調用方式
import Vue from 'vue'
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
// vue注冊調用方法一:
Vue.use(Viewer, {
defaultOptions: {
zIndex: 9999
}
})
import Vue from 'vue'
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
//vue注冊調用方法二:
Vue.use(Viewer);
Viewer.setDefaults({
Options: {
"inline": true, //啟用 inline 模式 默認false
"button": true, //顯示右上角關閉按鈕 默認true
"navbar": true, //顯示縮略圖導航 默認true
"title": true, //顯示當前圖片的標題 默認true
"toolbar": true, // 顯示工具欄 默認true
"tooltip": true, // 顯示縮放百分比 默認true
"movable": true, //圖片是否可移動 默認true
"zoomable": true, //圖片是否可縮放 默認true
"rotatable": true, //圖片是否可旋轉 默認true
"scalable": true, //圖片是否可翻轉 默認true
"transition": true, //使用css3過度 默認true
"fullscreen": true, //是否全屏 默認true
"keyboard": true, //是否支持鍵盤 默認true
"url": "data-source" //設置大圖片的URL
}
});
3剧浸、頁面引用
方法一、
<template>
<viewer :images="images">
<img v-for="src in images" :src="src" :key="src">
</viewer>
</template>
data(){
return{
images:[
'xx.png',
'hh.png'
]
}
}
方法二矗钟、
<ul ref="imgFontInfo" >
<li v-for="(item,index) in fontImgData" :key="index">
<div class="font-img-left" @click="viewImghandle(index)">
<div class="viewer-img" v-viewer="options">
<img
style="cursor: pointer;"
class="font-img-i"
v-for="(imgSrc,imgIndex) in item.phone"
:src="imgSrc"
:key="imgIndex"
:onerror="item.fontUrl"
/>
</div>
</div>
</li>
</ul>
methods:{
//點擊圖片的區(qū)域放大
viewImghandle(index){
const viewer = this.$refs.imgFontInfo.querySelectorAll('.viewer-img')[index].$viewer
viewer.show()
},
}
指令修飾器
static
添加修飾器后唆香,viewer的創(chuàng)建只會在元素綁定指令時執(zhí)行一次。
如果你確定元素內的圖片不會再發(fā)生變化吨艇,使用它可以避免不必要的重建動作躬它。
<div class="images" v-viewer.static="{inline: true}">
<img v-for="src in images" :src="src" :key="src">
</div>
以組件形式使用
你也可以單獨引入全屏組件并局部注冊它。
使用作用域插槽來定制你的圖片展示方式东涡。
監(jiān)聽inited
事件來獲取viewer
實例冯吓,或者也可以用this.refs.xxx.$viewer
這種方法。
<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>
如果你需要避免重名沖突疮跑,可以像這樣引入:
<div class="images" v-vuer="{movable: false}">
<img v-for="src in images" :src="src" :key="src">
</div>
4组贺、配置
defaultOptions
Type: Object
Default: undefined
如果你需要修改viewer.js的全局默認配置項,可以像這樣引入:
import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer, {
defaultOptions: {
zIndex: 2020
}
})
你還可以在任何時候像這樣修改全局默認配置項:
import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer)
Viewer.setDefaults({
zIndexInline: 2020
})