(1)简单示例
html代码
引入css <link rel="stylesheet" href="css/viewer.css"> <ul class="photos clearfix"> <li><img data-original="images/1.png" src="images/1s.png" alt="宝马"></li> <li><img data-original="images/2.png" src="images/2s.png" alt="跑车"></li> <li><img data-original="images/3.png" src="images/3s.png" alt="玛莎拉蒂"></li> <li><img data-original="images/4.png" src="images/4s.png" alt="保时捷"></li> <li><img data-original="images/5.png" src="images/5s.png" alt="冰山"></li> <li><img data-original="images/6.png" src="images/6s.png" alt="街角"></li> </ul>
注意:一般src用来存放缩略图,data-original用来存放原图(只需要在配置的时候,将url设为data-original即可),alt则为显示的标题,
js代码
引入js <script src="js/viewer.js"></script> $(function () { 'use strict'; var console = window.console || { log: function () {} }; var $images = $('.photos'); var options = { //inline: true, //toolbar: 3, url: 'data-original', }; $images.on({ 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); } }).viewer(options); });
下面主要说一下filter(过滤)这个配置
最常见的场景就是聊天窗口,可能会有头像还有聊天的图片,如果不做限制,因为头像也是图片,也会展示出来,这显然是不行的。所以通过filter把头像过滤掉。
html代码(对要查看的图片加上了ID)
<div> <img src="avatar.png"><!--这是头像--> <img src="1.png" id="pic"><!--这是聊天的图片--> <img src="2.png" id="pic"><!--这是聊天的图片--> </div>
js代码(主要看filter的设置)
$(function () { 'use strict'; var console = window.console || { log: function () {} }; var $images = $('.chat-body'); var options = { navbar: true, filter: function(image) { var id = image.id; if (id != "pic") { return false } else { return true } }, // inline: true, //toolbar: false, url: 'data-original', }; $images.viewer(options); });
(2)配置
名称 | 类型 | 默认值 | 描述 |
backdrop | 布尔型 | true | 是否开启遮罩层,就是放大图像以后的黑色背景 设置为"static",则有黑色遮罩层,但是点击其他地方不会关闭,只有点击右上角关闭按钮才能关闭 |
button | 布尔型 | true | 放大图像后,右上角的关闭按钮是否显示,默认是true显示 |
navbar | 布尔值/整型 | true | 放大图像后,是否显示底部缩略图导航,默认是true显示 |
title | 布尔值/整型/函数/数组 | true | 放大图像后,是否显示图片的标题,就是image标签alt里面的值。 选项: 0或false:隐藏标题 1或true或Function或Array:显示标题 2:仅在屏幕宽度大于768像素时显示标题 3:仅在屏幕宽度大于992像素时显示标题 4:仅在屏幕宽度大于1200像素时显示标题 Function:自定义标题内容 [Number, Function]:第一个元素指示可见性,第二个元素自定义标题内容 |
toolbar | 布尔值/整型/对象 | true | 工具栏 选项: 0或false:隐藏工具栏。 1或true:显示工具栏。 2:仅在屏幕宽度大于768像素时显示工具栏。 3:仅在屏幕宽度大于992像素时显示工具栏。 4:仅在屏幕宽度大于1200像素时显示工具栏。 { key: Boolean | Number }:显示或隐藏工具栏。 { key: String }:自定义按钮的大小。 { key: Function }:自定义按钮的点击处理程序。 { key: { show: Boolean | Number, size: String, click: Function }:自定义按钮的每个属性。 总共有10个键值: (1)zoomIn(放大) (2)zoomOut(缩小) (3)oneToOne(1:1重置) (4)prev(上一张) (5)play(播放),size选项有small(小)、medium(中,默认)、large(大) (6)next(下一张) (7)rotateLeft(从右向左旋转) (8)rotateRight(从左向右旋转) (9)flipHorizontal(左右翻转) (10)flipVertical(上下翻转) 举例说明 toolbar: { zoomIn: true,//总会显示放大按钮 zoomOut: false | 4,//屏幕大于1200px才显示缩小按钮 oneToOne: false | 3,//屏幕大于992px才显示重置按钮 prev: true,//总会显示上一张按钮 play: { show: false | 2,//大于768px显示播放按钮 size: 'small',//播放按钮是小,分为small(小)、medium(中默认项)、large(大) }, next: true,//总会显示上一张按钮 rotateLeft: true,//总会显示从右到左旋转 rotateRight: true,//总会显示从左到右旋转 flipHorizontal: true,//总会显示左右翻转 flipVertical: false | 2,//屏幕大于768px才显示上下翻转 }, |
className | 字符串 | “” | 添加到viewer根节点的类名 |
container | 元素或者字符串 | body | 将view打开放在哪个容器里面 仅在inline=false时才能用。 |
filter | 函数 | null | 过滤图像 new Viewer(image, { filter(image) { return image.complete; 理应返回true
|
fullscreen | 布尔型 | true | 播放时是否全屏,默认全屏播放 |
initialViewIndex | 整型 | 0 | 定义要查看的图像的初始索引。 |
inline | 布尔型 | false | 启用串联模式 |
interval | 整型 | 5000 | 播放间隔,单位为毫秒 |
keyboard | 布尔型 | true | 启用键盘支持 |
loading | 布尔型 | true | 是否在加载图像时显示加载微调器 |
loop | 布尔型 | true | 是否启用循环查看 |
minWidth | 整型 | 200 | 查看器的最小宽度 仅在inline=true时才能用 |
minHeight | 整型 | 100 | 查看器的最小高度 仅在inline=true时才能用 |
movable | 布尔型 | true | 启动移动图像 |
rotatable | 布尔型 | true | 是否可旋转 |
scalable | 布尔型 | true | 是否启用上下和左右翻转 |
zoomable | 布尔型 | true | 是否启用放大和缩小 |
zoomOnTouch | 布尔型 | true | 通过在触摸屏上拖动来启用缩放当前图像 |
zoomOnWheel | 布尔型 | true | 可通过鼠标滚轮缩放图像 |
slideOnTouch | 布尔型 | true | 通过在触摸屏上滑动,可以滑动到下一张或上一张图像 |
toggleOnDblclick | 布尔型 | true | 是否在双击图像时在图像的自然尺寸和初始尺寸之间切换图像尺寸 |
tooltip | 布尔型 | true | 放大或缩小时,以图像比率(百分比)显示工具提示 |
transition | 布尔型 | true | 为某些特殊元素启用CSS3过渡 |
zIndex | 整型 | 2015 | z-index在模式模式下定义查看器的CSS 值 |
zIndexInline | 整型 | 0 | z-index在串联模式下定义查看器的CSS 值 |
zoomRatio | 整型 | 0.1 | 通过滚轮鼠标缩放图像时定义比例 |
minZoomRatio | 整型 | 0.01 | 定义缩小时图像的最小比例 |
maxZoomRatio | 整型 | 100 | 定义放大时图像的最大比例 |
url | 字符串/函数 | src | 定义从何处获取原始图像URL进行查看 |
ready | 函数 | null | ready事件的快捷方式 |
show | 函数 | null | show事件的快捷方式 |
shown | 函数 | null | shown事件的快捷方式 |
hide | 函数 | null | hide事件的快捷方式 |
hidden | 函数 | null | hidden事件的快捷方式 |
view | 函数 | null | view事件的快捷方式 |
viewed | 函数 | null | viewed事件的快捷方式 |
zoom | 函数 | null | zoom事件的快捷方式 |
zoomed | 函数 | null | zoomed事件的快捷方式 |
(3)方法
1、show() 显示
2、hide() 隐藏
3、view(index) 查看
viewer.view(2); // 查看第三张图
4、prev() 上一张
5、next() 下一张
6、move(offsetX[, offsetY]) 水平方向移动
viewer.move(1); viewer.move(-1, 0);//向左移动 viewer.move(1, 0);//向右移动 viewer.move(0, -1);//向上移动 viewer.move(0, 1);//向下移动
7、moveTo(x [,y]) 将图像移到绝对点
8、zoom(ratio [,hasTooltip])以相对比例缩放图像
viewer.zoom(0.1); viewer.zoom(-0.1);
9、zoomTo(ratio[, hasTooltip])将图像缩放到绝对比例
viewer.zoomTo(0); viewer.zoomTo(1);
10、rotate(degree)相对旋转图像
viewer.rotate(90);//旋转90度
11、rotateTo(degree)
viewer.rotateTo(0); viewer.rotateTo(360);
12、scale(scaleX[, scaleY])
viewer.scale(-1);//水平和垂直翻转 viewer.scale(-1, 1);//水平翻转 viewer.scale(1, -1);//上下垂直翻转
13、scaleX(scaleX)
viewer.scaleX(-1);左右水平翻转
14、scaleY(scaleY)
viewer.scaleY(-1);//上下垂直翻转
15、play([fullscreen])
viewer.play(true);//全屏播放 viewer.play(false);//不全屏播放
16、stop() 停止
17、full()
18、exit()
19、tooltip()
20、toggle()
21、reset() 重启
22、update() 更新
此方法适用于ajax动态追加图片的时候进行更新。
$(".photos").viewer("update");
23、destroy() 销毁
详细可以参见:
GitHub:https://github.com/fengyuanchen/viewerjs