Github: slimbox2-lite
很久很久以前(喂,喂喂),很早很早以前(嘿!),好吧。以前发现只有几KB的图片灯箱特效 slimbox2 就瞬间被它征服了,不过这娃一直有个硬伤:
图片多大灯箱显示出来的图片就有多大。就是说,一旦图片比较大比如18001200,显示器只有1280800,那真是赤果果扑面而来啊!
虽然带着这个硬伤,还是把它作为哥发布的主题的标配!昨 @小黑黑 再一次向我反馈了这个情况,一下决心操起编辑器开试。吼,花了个把小时把 js 从头到尾读了N遍后,顺利搞定!修改部分如下:
function animateBox() {
center.className = "";
//Slimbox2 图片灯箱自适应 By ImMmMm.com
//CSS 内新增 background-size":"100%",之后增加对浏览器宽、高和图片宽、高判断。
$(image).css({backgroundImage: "url(" + activeURL + ")", visibility: "hidden", display: "","background-size":"100%"});
var p_w = preload.width,p_h = preload.height,w_w = win.width(),w_h = win.height();
if (p_w >= w_w || p_h >= w_h){
if ( w_w >= w_h ){
$(sizer).width(w_h*0.8*p_w/p_h);
$([sizer, prevLink, nextLink]).height(w_h*0.8);
}else{
$(sizer).width(w_w*0.8);
$([sizer, prevLink, nextLink]).height(w_w*0.8*p_h/p_w);
}
}else{
$(sizer).width(preload.width);
$([sizer, prevLink, nextLink]).height(preload.height);
}
//End
主要思路是图片宽度或高度超出浏览器时:图片宽度大于高度(横图),以浏览器高度80%作为图片高度,宽度等比缩小;竖图,反之处理。
不容易遇到个需求点而且顺利解决,话不免多了起开,哈哈~