vue圖片放大、縮小、旋轉等


用於圖片瀏覽的Vue組件,支持旋轉、縮放、翻轉等操作,基於viewer.js

效果:

 

安裝

使用npm命令安裝

npm install v-viewer

使用

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

//main.js 中引入 或者在組件里引入 
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer)

 

以指令形式使用

只需要將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>

 

插件配置項

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
})

 

 

更多配置內容:請參考viewer.js.

GitHub:https://github.com/mirari/v-viewer

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM