主要对mui
图片全屏预览插件作了如下三点补充
1.添加了预览图片文字说明,使用的时候须要添加如下css
及DOM
属性css
.mui-slider-img-content { position: absolute; bottom: 10px; left: 10px; right: 10px; color: white; text-align: center; line-height: 21px }
<img src="../images/yuantiao.jpg" data-preview-src="" data-preview-group="2" data-content="这里是文字说明"/>
2.若是图片过宽或过长,预加载图片(上一张或下一张)时,会和当前显示的图片重叠
原来的效果是这样
主要对缩放进行了更改html
proto._initImgData = function(itemData, imgEl) { if (!itemData.sWidth) { var img = itemData.el; itemData.sWidth = img.offsetWidth; itemData.sHeight = img.offsetHeight; var offset = $.offset(img); itemData.sTop = offset.top; itemData.sLeft = offset.left; //缩放判断,解决预加载图片时,图片过大,和当前显示图片重叠的问题 //未更改以前缩放比例能达到2.5倍以上 var scale = Math.max(itemData.sWidth / window.innerWidth, itemData.sHeight / window.innerHeight); itemData.sScale = scale > 1 ? 0.977 : scale; } imgEl.style.webkitTransform = 'translate3d(0,0,0) scale(' + itemData.sScale + ')'; };
3.解决了预加载页面返回(mui.back)从新加载数据并打开时,预览无用的问题
主要应用场景是这样的:git
DOM
结果var previewImageApi = null; $.previewImage = function(options) { if (!previewImageApi) { previewImageApi = new PreviewImage(options); } return previewImageApi; };
//释放当前对象及清除DOM proto.dispose = function() { var prevdom = document.getElementById("__MUI_PREVIEWIMAGE"); prevdom && prevdom.parentNode.removeChild(prevdom); previewImageApi = null; };
具体代码在这https://github.com/phillyx/mui/blob/master/examples/hello-mui/examples/imageviewer.htmlgithub