0

根据Slimbox2 文档,此功能不受支持。但我想知道是否有人遇到过任何技巧来完成这项工作。

我主要担心的是我的一些图像相当长,并且在低分辨率下 LightBox2 会给用户带来烦人的体验。

4

3 回答 3

2

我最近开始在我的网站 (http://www.trips.elusien.co.uk) 上使用 slimbox2,发现它可以从一些修改中受益:

  • “幻灯片调整大小”:这使幻灯片的大小保持不变,而不是取决于图像的大小(通过指定像素大小),或者您可以使用百分比来使幻灯片在幻灯片中更大或更小。您可以使用 2 个新选项指定这一点:

    slideWidth: 0,              // Initial width  of the slide (in pixels or in percent as a string e.g. "50%")
    slideHeight: 0,             // Initial height of the slide (in pixels or in percent as a string e.g. "50%")
    
  • 使幻灯片自动翻转,而不是手动翻转。您可以使用新选项指定它:

    slideInterval: 0,           // Interval between flipping slides (in seconds), 0 means no automation.
    
  • 从幻灯片下载幻灯片。

原始版本的 slimbox2 无法完成第一个和最后一个功能,因为在该版本中,图像显示为背景图像,而不是使用“IMG”标签。

我已将 Javascript 和 CSS 文件放在我的网站上。如果您想尝试它们,请访问我的网站并单击“slimbox 示例”链接,您可以从此处下载它们。要查看使用 slimbox2 的简洁方式,请单击主页上的“photoSLide Show”链接。

问候尼尔

于 2011-01-16T14:40:56.897 回答
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); 
        }

我是 javascript 的业余爱好者,但我认为它工作得很好。我也让它与 IE8 一起工作。您只需要插入:

<!--[if IE 8]>
<p class="slimboxie"></p>
<![endif]-->
于 2013-10-03T22:14:02.487 回答
0

加载图像后,执行以下操作:

$('#lbImage').css('背景尺寸', '包含');

于 2013-05-23T20:28:41.417 回答