Viewer.js 实现动态预览功能

干货分享 · 2020-05-06

viewer.js是一款功能强大的照片查看器,只需引入viewer.css和viewer.js即可使用,主要参数如下

名称类型默认值说明
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回调函数,具体查看演示

因为要通过ajax获取图片列标,所以此处有显示和销毁处理。首先创建一个容器,如下:

<div class="test" id="test" style="display: none;"></div>

接着编写ajax代码动态给容器中添加图片,如下:

//创建元素
			$('body').on('click','.showHd',function(){
				var id = $(this).data('id');
				$.post("{:url('ajax/productImgs')}",{id:id},function(res){
					var str = '';
					if(res.code === 0){
						$.each(res.data,function(index,item){
							str += '<img data-original='+item+' src='+item+' />';
						});
						$('#dowebok').empty().append(str);
						//图片查看器
						var viewer = new Viewer(document.getElementById('dowebok'), {
							url: 'data-original',
							title:false,
							show:function(){
								viewer.update()
							},
							hide:function(){
								viewer.destroy();
							}
						});
						viewer.show();
					}
				});
			});

至此,已基本完成,不destroy关闭后下次再打开会报错。

 
联系客服