JavaScript

超轻量级php框架startmvc

Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】

更新时间:2020-09-20 19:24:01 作者:startmvc
本文实例讲述了Vue图片浏览组件v-viewer用法。分享给大家供大家参考,具体如下:v-viewer用

本文实例讲述了Vue图片浏览组件v-viewer用法。分享给大家供大家参考,具体如下:

v-viewer

用于图片浏览的Vue组件,支持旋转、缩放、翻转等操作,基于viewer.js。

从0.x迁移

你需要做的唯一改动就是手动引入样式文件:


import 'viewerjs/dist/viewer.css'

安装

使用npm命令安装


npm install v-viewer

使用

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


<template>
 <div id="app">
 <!-- directive -->
 <div class="images" v-viewer>
 <img src="1.jpg">
 <img src="2.jpg">
 ...
 </div>
 <!-- component -->
 <viewer :images="images">
 <img v-for="src in images" :src="src" :key="src">
 </viewer>
 </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']
 }
 }
</script>

以指令形式使用

只需要将v-viewer指令添加到任意元素即可,该元素下的所有img元素都会被viewer自动处理。

你可以像这样传入配置项: v-viewer="{inline: true}"

如果有必要,可以先用选择器查找到目标元素,然后可以用el.$viewer来获取viewer实例。


<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的创建只会在元素绑定指令时执行一次。

如果你确定元素内的图片不会再发生变化,使用它可以避免不必要的重建动作。


<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这种方法。


<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

如果你需要避免重名冲突,可以像这样引入:


<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的全局默认配置项,可以像这样引入:


import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer, {
 defaultOptions: {
 zIndex: 9999
 }
})

你还可以在任何时候像这样修改全局默认配置项:


import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer)
Viewer.setDefaults({
 zIndexInline: 2017
})

希望本文所述对大家vue.js程序设计有所帮助。

Vue 图片浏览组件 v-viewer