1、 Viewer.js简介
Viewer.js 是一款强大的图片查看器。我们通过Viewer.js 在页面上添加强大的图片查看功能,同时,这款优秀的插件配置操作起来也非常的方便。
Viewer.js分为2个版本,js版本和jquery版本,下载地址分别为
纯JS版本:https://github.com/fengyuanchen/viewerjs
jQuery 版本:GitHub - fengyuanchen/jquery-viewer: A jQuery plugin wrapper for Viewer.js.、
网上看到有说jquery版本有bug,最后选用啦js版本,demo截图大概如下
2、Viewer.js支持的功能
支持移动设备触摸事件
支持响应式
支持放大/缩小
支持旋转(类似微博的图片旋转)
支持水平/垂直翻转
支持图片移动
支持键盘
支持全屏幻灯片模式(可做屏保)
支持缩略图
支持标题显示
支持多种自定义事件
3、Viewer.js的API
名称 | 类型 | 默认值 | 说明 |
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 |
build | 函数 | null | 回调函数,具体查看演示 |
built | 函数 | null | 回调函数,具体查看演示 |
show | 函数 | null | 回调函数,具体查看演示 |
shown | 函数 | null | 回调函数,具体查看演示 |
hide | 函数 | null | 回调函数,具体查看演示 |
hidden | 函数 | null | 回调函数,具体查看演示 |
view | 函数 | null | 回调函数,具体查看演示 |
viewed | 函数 | null | 回调函数,具体查看演示 |
4 使用方法
4.1 引入方式
js,jquery版本,直接文件引入
Javascript版:
<link rel="stylesheet" href="css/viewer.min.css"> <script src="js/viewer.min.js"></script>
jQuery版
<link rel="stylesheet" href="css/viewer.min.css"> <script src="js/jquery.min.js"></script> <script src="js/viewer.min.js"></script>
npm,直接install
npm install viewerjs
4.2 简单demo
这里为我用的是js版本,简单做了一个demo
html代码
<!doctype html> <html lang="en" ng-app="pharosApp"> <head> <meta charset="utf-8"> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" /> <title>图片预览</title> <link rel="stylesheet" href="viewer.min.css" /> <script src="jquery.min.js"></script> <script type="text/javascript" src="viewer.min.js"></script> <style> #viewer { padding: 2%; } #viewer img { margin: 1%; width: 22.5%; height: 200px; object-fit:fill; } </style> <script> function previewImg() { var viewer = new Viewer(document.getElementById('viewer'), { button: true, inline: false, zoomable: true, title: true, tooltip: true, minZoomRatio: 0.5, maxZoomRatio: 100, movable: true, interval: 2000, navbar: true, loading: true, show: function () { viewer.update(); } }); $("body").on("click", ".viewer-container", function (e) { viewer.hide() }); $("body").on("click", ".viewer-canvas", function (e) { e.stopPropagation(); }); $("body").on("click", ".viewer-footer", function (e) { e.stopPropagation(); }); $("body").on("click", ".viewer-button", function (e) { e.stopPropagation(); }); $("body").on("click", ".viewer-tooltip", function (e) { e.stopPropagation(); }); $("body").on("click", ".viewer-player", function (e) { e.stopPropagation(); }); } </script> </head> <body> <div id="viewer"> <img src="1.png" /> <img src="2.png" /> <img src="3.png" /> </div> </body> </html>
5.viewer.js源码,js版本
viewer.min.css
/*! * Viewer.js v0.3.1 * https://github.com/fengyuanchen/viewerjs * * Copyright (c) 2015-2016 Fengyuan Chen * Released under the MIT license * * Date: 2016-02-02T11:35:36.273Z */.viewer-container,.viewer-navbar{background-
viewer.min.js
/*! * Viewer.js v0.3.1 * https://github.com/fengyuanchen/viewerjs * * Copyright (c) 2015-2016 Fengyuan Chen * Released under the MIT license * * Date: 2016-02-02T11:35:52.542Z */ !function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new