泓泰

分享一款好用的图片查看器插件v-viewer,谁用谁知道

admin
分享一款好用的图片查看器插件v-viewer,谁用谁知道-第1张-游戏相关-泓泰

前言:

今【jīn】天【tiān】大家对【duì】“ehviewer176github”大概比较讲究,咱们都【dōu】需要知道一些【xiē】“ehviewer176github”的相关内容。那么小【xiǎo】编也在网络上网罗了一些对于“ehviewer176github””的【de】相关文章【zhāng】,希望同学们能喜欢【huān】,我【wǒ】们一起来了解一下【xià】吧【ba】!

我的工作日【rì】常经【jīng】常【cháng】会碰到图片预览的功能【néng】,用的比较多,所以【yǐ】今天【tiān】给大家分【fèn】享一款使用简单,功能强【qiáng】大的插件v-viewer,希【xī】望能帮助到你们。下面视频是简单的演【yǎn】示!

视频加载中...

demo地址:https://mirari.cc/v-viewer/

github地址:https://github.com/mirari/v-viewer.git

v-viewer是基于viewer.js封装的vue组件【jiàn】。viewer.js组件还分【fèn】为jquery版【bǎn】本和【hé】JS版本,内【nèi】置属性和方【fāng】法大致相同,今天我们了解下【xià】vue版的使用方【fāng】法。

主【zhǔ】要功能:支持选项支持方法支【zhī】持事件【jiàn】支【zhī】持触摸支持移动支持【chí】缩放支持【chí】旋【xuán】转支【zhī】持键盘跨浏览【lǎn】器支持首先是安装
npm install v-viewer --save
使用

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

使用形式有两种:指令形式组件形式

<template>  <div id="app">    <!-- 指【zhǐ】令【lìng】形【xíng】式 -->    <div class="images" v-viewer>      <img src="1.jpg">      <img src="2.jpg">      ...    </div>    <!-- 组件形【xíng】式 -->    <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必须是数组      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的创建只会在元素绑定指令时执行一次。
如果你确【què】定元素内的图片不会再【zài】发生变化,使用它可以【yǐ】避【bì】免【miǎn】不必要的重【chóng】建【jiàn】动作。

<div class="images" v-viewer.static="{inline: true}">  <img v-for="src in images" :src="src" :key="src"></div>

rebuild

默认情况下当图片发生变更时(添加、删除或排序),viewer实例会使用update方法更新内容。

如果你遇到任何显示问题,尝试使用重建来代替更新。

<div class="images" v-viewer.rebuild="{inline: true}">  <img v-for="src in images" :src="src" :key="src"></div>
以组件形式使用

你也可以单独引入全屏组件并局部注册它。

使用作用域插槽来定制你的图片展示方式。

<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>
组件属性

images

类型: Array

trigger

类型: Array

你可以使用trigger来代替images, 从而传入任何类型的数据。

trigger绑定的数据发生变更,组件就会自动更新。

<viewer :trigger="externallyGeneratedHtmlWithImages">  <div v-html="externallyGeneratedHtmlWithImages"/></viewer>

rebuild

类型: Boolean默认值: false

默认情况下当图片发生变更时(添加、删除或排序),viewer实例会使用update方法更新内容。

如果你遇到任何显示问题,尝试使用重建来代替更新。

<viewer  ref="viewer"  :options="options"  :images="images"  rebuild  class="viewer"  @inited="inited">  <template slot-scope="scope">    <img v-for="src in scope.images" :src="src" :key="src">    {{scope.options}}  </template></viewer>
组件事件

inited

viewer: Viewer

监听inited事件来获取viewer实例,或者也可以用this.refs.xxx.$viewer这种方法。

配置项 & 方法

请参考viewer.js.


插件配置项

name

类型: String默认值: 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

类型: Object

默认值: undefined

如果你【nǐ】需要修改【gǎi】viewer.js的全局【jú】默认配置【zhì】项,可以像这样引入:

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


结尾:希望小凡的每篇文章对你都有所帮助!

关注我,一起学习进步

标签: #ehviewer176github