Vue中使用viewer.js图片查看器

插件安装

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

插件官方git地址

插件demo地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342