Vue图片浏览组件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程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容