本文介绍Viewer.js这款强大的前端图片查看器插件,涵盖其JS与jQuery双版本特性。详细解析了包括响应式、触摸事件、缩放旋转、全屏幻灯片等核心功能,并提供了从CDN引入到npm安装的配置方式及基础API调用示例,帮助开发者快速实现网页图片的交互预览效果。
Viewer.js简介
- Viewer.js 是一款功能丰富的图片查看器。借助该插件,开发者可以便捷地在网页中集成专业的图片浏览功能,其配置过程简单直观,易于上手。
该插件提供两种版本:纯 JavaScript 版和 jQuery 版,官方下载地址如下。
纯 JS 版本:GitHub - fengyuanchen/viewerjs: JavaScript image viewer.
jQuery 版本:GitHub - fengyuanchen/jquery-viewer: A jQuery plugin wrapper for Viewer.js.
Viewer.js支持的功能
- 兼容移动设备的触摸操作事件。
- 支持响应式布局,适配不同屏幕尺寸。
- 具备图片放大与缩小功能。
- 支持图片旋转,效果类似微博图片的旋转交互。
- 支持水平与垂直方向的翻转操作。
- 允许用户对图片进行拖拽移动。
- 支持键盘快捷键操作。
- 提供全屏幻灯片模式,可作为屏幕保护使用。
- 支持缩略图导航显示。
- 支持显示图片标题。
- 支持多种自定义事件监听与处理。
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 | 回调函数,具体查看演示 |
安装与引入方式
- JavaScript 版本:在 HTML 文件的 <head> 标签中直接引入相关资源文件。
<link href="static/js/viewer.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet">
<script src="static/js/viewer.min.js" type="application/javascript"></script>
- jQuery 版本:需额外引入 jQuery 库,同样在 HTML 文件的 <head> 中直接引入文件。
<link href="static/js/viewer.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet">
<script src="static/js/viewer.min.js" type="application/javascript"></script>
<script src="static/js/jquery.min.js"></script>- 使用 npm 包管理器,直接执行 install 命令进行安装。
npm install viewerjs使用方法(简单的操作)
- 此处以 JS 版本为例,制作一个简单演示 Demo,HTML 代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link href="static/js/viewer.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet">
<script src="static/js/viewer.min.js" type="application/javascript"></script>
<script src="static/js/jquery.min.js"></script>
</head>
<body>
<div class="container ">
<div id="image-gallery" style="display: none">
//这里面可以放多个图片,显示按照指定的索引进行(索引从0开始)
<img src="static/images/banner2.jpg" alt="Image 1">
</div>
// 点击显示预览图片
<div id="btn01" style="width: 70px;height: 30px;border: 1px solid #ccc;text-align: center;line-height: 30px;">点击</div>
</div>
</body>
//这里放js操作
</html- JavaScript 代码,实现点击显示图片及相关的交互操作事件。
<script>
// 添加事件
document.addEventListener('DOMContentLoaded', function () {
// 获取点击后需要显示的图片id
var gallery = document.getElementById('image-gallery');
// 给显示的图片添加一下属性在dom中
var viewer = new Viewer(gallery, {
inline: false,
button: true,
navbar: true,
toolbar: true,
title: true,
tooltip: true,
movable: true,
zoomable: true,
rotatable: true,
scalable: true,
});
// 添加按钮点击事件
document.getElementById('btn01').addEventListener('click', function () {
// 这里指定要预览的图片索引
viewer.view(0); // 预览第一张图片(索引从0开始)
});
});
</script>- 效果展示


总结
至此,关于前端使用 Viewer.js 进行图片点击预览的介绍已完成。如需了解更多相关前端技术内容,建议搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持!