前言:
今【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
类型: Arraytrigger
类型: 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