打开具有特定宽高比的fancyBox

时间:2012-03-04 07:36:24

标签: javascript jquery fancybox

有谁知道如何打开具有特定宽高比的可调整大小的fancyBox(例如16:9)?

4 个答案:

答案 0 :(得分:5)

没有一种本地方式可以轻松调整Fancybox的大小。您可以使用 screen.height 进行一些简单的数学计算,以相对于当前屏幕分辨率的特定宽高比打开Fancybox。

var height = screen.height/4;

$("#test").fancybox({
           'width' : 16/9. * height,
           'height' : height,
           'autoDimensions' : false
      }); 
});

答案 1 :(得分:4)

还有纯CSS解决方案。它甚至在您调整大小时也能正常工作。

.fancybox-type-iframe .fancybox-inner{
    padding-top: 56.2%; /* (9/16 * 100%) -- your aspect ratio in percents */
    height: 0 !important;
}

.fancybox-type-iframe .fancybox-inner .fancybox-iframe{ 
    position: absolute; 
    top: 0; 
    left: 0; 
    right: 0; 
    bottom: 0;
}

我假设您需要使用fancybox显示的视频。因此与iframe相关的css。

P.S。我知道这个帖子已经过时了。但也许有人仍然需要一个解决方案。

答案 2 :(得分:1)

这是一个纯粹的css解决方案,适用于与Fancybox 3一起使用的响应式youtube弹出窗口。它是用scss写的清晰度,但如果你不熟悉scss,可以在线转换为css。

.fancybox-slide--iframe {

    .fancybox-content{
        margin: 0!important;
        max-width: 100%;
        width: 100%;
        padding-top: 56.2%; /* (9/16 * 100%) -- your aspect ratio in percents */
        height: 0 !important;

        /* don't go full width on wide screens */
        @media all and (min-width: 800px) {
            max-width: 70%;
            width: 70%;
            padding-top: 39.34%;  /* (9/16 * 70%) -- smaller aspect ratio in percents */
        }

        .fancybox-iframe{ 
            position: absolute; 
            top: 0; 
            left: 0; 
            right: 0; 
            bottom: 0;
        }

    }
}

答案 3 :(得分:0)

AFAIK,Fancybox现在不支持这个。但是,您可以控制花式框尺寸的尺寸

("#yourbox").fancybox({
    'width'             : 680,
    'height'             495,
    'showCloseButton'   : false,
    'titlePosition'     : 'inside',
    'titleFormat'       : formatTitle
});