1

我正在为我的画廊使用 Slimbox2,但缺少一项重要功能 - 调整框架大小以适应屏幕。当图像太大时,它会超出屏幕。有没有人找到解决方案?

插件官方网站

API 文档

解决这个问题对我来说真的很重要,在此先感谢!

4

1 回答 1

1

我有同样的问题,我做到了:

我打开 slimbox2.js 文件并替换:

$(image).css({backgroundImage: "url(" + activeURL + ")", visibility: "hidden", display: ""});
$(sizer).width(preload.width);
$([sizer, prevLink, nextLink]).height(preload.height);

和:

     /* make sure the image won't be bigger than the window */
window.innerWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; //ie fix
window.innerHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; //ie fix        
var winWidth =  window.innerWidth-200; //browser width
var winHeight = window.innerHeight-100; //browser height
var my_w = preload.width; //original width
var my_h = preload.height; //original height

    // scale  width
    var scaleW1 = winWidth;
    var scaleH1 = (my_h * winWidth) / my_w;

    // scale  height
    var scaleW2 = (my_w * winHeight) / my_h;
    var scaleH2 = winHeight;
    var scale = (scaleW2 > winWidth);

    if (scale) {
        reswidth = Math.floor(scaleW1);
        resheight = Math.floor(scaleH1);

    }
    else {
        reswidth = Math.floor(scaleW2);
        resheight = Math.floor(scaleH2);

    }
    if ($("p").hasClass("slimboxie")){ 
    $(image).css({filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader( src='"+ activeURL + "', sizingMethod='scale')", visibility: "hidden", display: ""});

    $(sizer).width(reswidth);
    $([sizer, prevLink, nextLink]).height(resheight); }
    else {

    $(image).css({backgroundImage: "url(" + activeURL + ")", backgroundSize: reswidth + "px " + resheight + "px", visibility: "hidden", display: ""});
    $(sizer).width(reswidth);
    $([sizer, prevLink, nextLink]).height(resheight); 

    }

我是一个业余爱好者,所以请客气 :) 如果您对修复它有任何疑问,可以问我 :)

于 2013-09-30T09:56:21.157 回答