插件安装
npm install viewerjs
插件引入
import Viewer from 'viewerjs';
import 'viewerjs/dist/viewer.css';
html部分
<img id="viewerDom" src = "xxx.png" alt="">
或者
<ul id="viewerDom">
<li v-for="item in imgList" :key="index">
<img src = "item">
</li>
</ul>
或者
<div id = "viewerDom">
<img v-for="item in imgList" :src="item">
</div>
调用插件
//具体需要哪些配置可参照下表
const ViewerDom = document.querySelector('#viewerDom');
this.viewer = new Viewer(ViewerDom, {
initialViewIndex: 0,
button: true, //右上角关闭按钮
navbar: 2,
title: 0,
toolbar: 0,
keyboard: false,
ready: function (e) {
console.log(e.type);
},
show: function (e) {
console.log(e.type);
},
shown: function (e) {
console.log(e.type);
},
hide: function (e) {
console.log(e.type);
},
hidden: function (e) {
console.log(e.type);
},
view: function (e) {
console.log(e.type);
},
viewed: function (e) {
console.log(e.type);
},
zoom: function (e) {
console.log(e.type);
},
zoomed: function (e) {
console.log(e.type);
}
});
键盘事件
仅在modal mode下可用
ESC 键: 退出全屏/关闭/退出/停止播放;
Space 键: 停止/播放;
←键: 查看上一张图片;
→键: 查看下一张图片;
↑键: 放大图片;
↓键: 缩小图片;
Ctrl + 0 组合键: 缩小到初始大小;
Ctrl + 1 组合键: 放大到原始大小;
配置参数
参数名称 | 参数类型 | 默认值 | 说明 |
---|---|---|---|
initialViewIndex | Number | 0 | 定义用于查看的图像的初始索引 |
inline | Boolean | false | 支持 inline mode |
button | Boolean | true | 是否显示查看图片时右上角的关闭按钮 |
navbar | Boolean / Number | true | 是否显示底部导航栏 0 或者 false :不显示 1 或者 true :显示 2 :当屏幕宽度大于768px时显示 3 :当屏幕宽度大于992px时显示4 :当屏幕宽度大于1200px时显示 |
title | Boolean / Number /Function / Array | true | 0 或者 false 时不显示1 或者true者function或者array时显示2 :当屏幕宽度大于768px时显示3 :当屏幕宽度大于992px时显示 4 :当屏幕宽度大于1200px时显示function 在函数体内返回标题array 第一个参数表示可见性(0-4) 第二个参数就是标题 |
toolbar | Boolean / Number / Object | true | 标题栏是否显示和布局 0 或者 false 时不显示1 或者true 或者时显示2 :当屏幕宽度大于768px时显示 3 :当屏幕宽度大于992px时显示 4 :当屏幕宽度大于1200px时显示 Object
|
tooltip | Boolean | true | 放大或缩小时显示的百分比的文字提示true : 显示 false : 不显示 |
movable | Boolean | true | 是否可以拖动图片 |
zoomable | Boolean | true | 是否可以缩放图片 |
rotatable | Boolean | true | 是否可以旋转图片 |
scalable | Boolean | true | 是否可以缩放图片 |
transition | Boolean | true | 为一些特殊元素启用CSS3转换。 |
fullscreen | Boolean | true | 允许全屏播放 |
keyboard | Boolean | true | 启用键盘支持 |
backdrop | Boolean / String | true | 启用 modal 为false的时候不支持点击背景关闭 |
loading | Boolean | true | 加载图片的时候的loading图标 |
loop | Boolean | true | 是否可以循环查看图片 |
interval | Number | 5000 | 定义图片查看器的最小的宽度 |
minWidth | Number | 200 | 定义图片查看器的最小的高度 |
minHeight | Number | 100 | 播放图片时 距离下一张图片的间隔时间 |
zoomRatio | Number | 0.1 | 利用鼠标滚轮缩放图片时的比例 |
minZoomRatio | Number | 0.01 | 缩小图片的最小比例 |
maxZoomRatio | Number | 100 | 放大图片的放大比例 |
zIndex | Number | 2015 | 定义查看器的CSS z-index值 modal 模式下 |
zIndexInline | Number | 0 | 定义查看器的CSS z-index值 inline 模式下 |
url | String / Function | src | 原始图像URL如果是一个字符串,应该图像元素的属性之一如果是一个函数,应该返回一个有效的图像URL |
container | Element / String | body | 将查看器置于modal模式的容器 只有在 inline为 false的时候才可以使用 |
filter | Function | null | 过滤图像以便查看(如果图像是可见的,应该返回true) |
toggleOnDblclick | Boolean | true | 当你放大或者缩小图片时 双击还原 |
ready | Function | null | 当查看图片时被触发的函数 只会触发一次 |
show | Function | null | 当查看图片时被触发的函数 每次查看都会触发 |
shown | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在show之后 |
hide | Function | null | 当关闭图片查看器时被触发的函数 每次关闭都会触发 |
hidden | Function | null | 当关闭图片查看器时被触发的函数 每次关闭都会触发 在hide之后 |
view | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在shown之后 |
viewed | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在view之后 |
zoom | Function | null | 在图片缩放时触发 |
zoomed | Function | null | 在图片缩放时触发 在 zoom之后 |
toolbar Object详解
key值列表: "zoomIn", "zoomOut", "oneToOne", "reset", "prev", "play", "next", "rotateLeft", "rotateRight", "flipHorizontal", "flipVertical"
key值名称 | 说明 |
---|---|
zoomIn | 放大图片的按钮 |
zoomOut | 缩小图片的按钮 |
reset | 重置图片大小的按钮 |
prev | 查看上一张图片的按钮 |
next | 查看上一张图片的按钮 |
play | 播放图片的按钮 |
rotateLeft | 向左旋转图片的按钮 |
rotateRight | 向右旋转图片的按钮 |
flipHorizontal | 图片左右翻转的按钮 |
flipVertical | 图片上下翻转的按钮 |
{key:number|Boolean} 显示或者隐藏对应key的按钮 为Number的时候为可见性
{key: String } 自定义按钮的大小
{ key: Function } 自定义按钮点击的处理
{ key: { show: Boolean | Number, size: String, click: Function } 自定义按钮的每个属性
size的取值范围: small medium default large;
方法
key值名称 | 说明 |
---|---|
show() |
显示显示器 |
hide() |
关闭显示器 |
view() |
查看视频索引 |
prev() |
指示当前是第一个时转向查看最后一个 |
next() |
指示当前是最后一个时转向查看第一个 |
move(offsetX [,offsetY]) |
offsetX :水平滑动;offsetY (可选):垂直滑动 |
moveTo(x,[, y]) |
x :图片left值;y :图片top值(可选),不填时默认为x 的值; |
zoom(ratio[, hasTooltip]) |
radio:放大缩小比例;hasTooltip:显示工具提示(可选); |
zoomTo(ratio [,hasTooltip]) |
将图像缩放到绝对比例。 |
rotate(degree) |
使用相对度旋转图像。 |
rotateTo(degree) |
将图像旋转到绝对程度 |
scale(scaleX[, scaleY]) |
缩放 |
scaleX(scaleX) |
缩放图像的横坐标 |
scaleY(scaleY) |
缩放图像的纵坐标 |
play([fullscreen]) |
指示请求是否全屏(可选) |
stop() |
停止播放 |
full() |
使用modal mode |
exit() |
退出modal mode |
tooltip() |
显示图像的当前比率和百分比 |
toggle() |
在自然大小和初始大小之间切换图像大小 |
reset() |
初始化图片 |
update() |
更改(添加,删除或排序)源图像时更新查看器实例。如果动态加载图像(使用XMLHTTPRequest),则可以使用此方法将新图像添加到查看器实例。 |
destroy() |
销毁查看器并删除实例 |
event
let viewer;
image.addEventListener('viewed', function () {
console.log(this.viewer === viewer);
// > true
});
viewer = new Viewer(image);
ready、show、shown、hide、hidden、view、viewed、zoom、zoomed