图片预览插件viewer.js
下载
npm install viewerjs
原生引用
<link href="/path/to/viewer.css" rel="stylesheet"> <script src="/path/to/viewer.js"></script>
option参数
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
inline | 布尔值 | false | 启用 inline 模式 |
button | 布尔值 | true | 显示右上角关闭按钮(jQuery 版本无效) |
navbar | 布尔值/整型 | true | 显示缩略图导航 |
title | 布尔值/整型 | true | 显示当前图片的标题(现实 alt 属性及图片尺寸) |
toolbar | 布尔值/整型 | true | 显示工具栏 |
tooltip | 布尔值 | true | 显示缩放百分比 |
movable | 布尔值 | true | 图片是否可移动 |
zoomable | 布尔值 | true | 图片是否可缩放 |
rotatable | 布尔值 | true | 图片是否可旋转 |
scalable | 布尔值 | true | 图片是否可翻转 |
transition | 布尔值 | true | 使用 CSS3 过度 |
fullscreen | 布尔值 | true | 播放时是否全屏 |
keyboard | 布尔值 | true | 是否支持键盘 |
interval | 整型 | 5000 | 播放间隔,单位为毫秒 |
zoomRatio | 浮点型 | 0.1 | 鼠标滚动时的缩放比例 |
minZoomRatio | 浮点型 | 0.01 | 最小缩放比例 |
maxZoomRatio | 数字 | 100 | 最大缩放比例 |
zIndex | 数字 | 2015 | 设置图片查看器 modal 模式时的 z-index |
zIndexInline | 数字 | 0 | 设置图片查看器 inline 模式时的 z-index |
url | 字符串/函数 | src | 设置大图片的 url |
data-original是大图的url,src是小图的url
var viewer = new Viewer(document.getElementById('image'), {url: 'data-original'})
<div> <img id="image" data-original="picture.jpg" src="picture.jpg" alt="Picture"> </div>
<div> <ul id="images"> <li><img src="picture-1.jpg" alt="Picture 1"></li> <li><img src="picture-2.jpg" alt="Picture 2"></li> <li><img src="picture-3.jpg" alt="Picture 3"></li> </ul> </div>
import Viewer from 'viewerjs/dist/viewer.min.js'; open(url: string | Array<string>, index?: number) { let image; if (typeof url === 'string') { image = new Image(); image.src = url; } else if (url instanceof Array) { image = document.createElement('ul'); url.forEach(src => { const li = document.createElement('li'); image.appendChild(li); const img = new Image(); img.src = src; li.appendChild(img); }); } const viewer = new Viewer(image, { hidden: function () {
viewer.destroy();
}, // 摧毁容器,不摧毁会有些小bug
title: false,
toolbar: {
zoomIn: { show: true, size: 'large' },
zoomOut: { show: true, size: 'large' },
oneToOne: { show: true, size: 'large' },
reset: { show: true, size: 'large' },
prev: { show: true, size: 'large' },
next: { show: true, size: 'large' },
rotateLeft: { show: true, size: 'large' },
rotateRight: { show: true, size: 'large' },
flipHorizontal: { show: true, size: 'large' },
flipVertical: { show: true, size: 'large' },
},
transition: false,
navbar: false,
}); viewer.show(); if (!Util.isUndefinedOrNull(index)) { viewer.view(index); // 显示数组中指定下标的图片 } }