Fancybox 包装器无法根据图像尺寸正确自动调整大小

发布于 2024-09-28 04:38:21 字数 577 浏览 6 评论 0原文

我在使用 FancyBox 时遇到问题。它应该根据图像的尺寸自动调整包装器的大小。它不是这样做的。具体来说就是太小了。

这是我使用过的 FancyBox jQuery 代码:

$("a[rel=photo_gallery]").fancybox({
    'type'              : 'image',
    'padding'           : 10,
    'autoScale'         : true,
    'cyclic'            : true,
    'overlayOpacity'    : 0.7,
    'overlayColor'      : '#000000',
    'transitionIn'      : 'fade',
    'transitionOut'     : 'fade',
    'titlePosition'     : 'over',
    'titleShow'         : false,
    'resize'            : 'Auto'
});

还有其他人遇到过这个问题吗?

预先感谢您的任何帮助。

I'm having an issue with FancyBox. It's supposed to auto-resize the wrapper in accordance to the dimensions of the image. It's not doing that. Specifically it's too small.

Here's the FancyBox jQuery code I've used:

$("a[rel=photo_gallery]").fancybox({
    'type'              : 'image',
    'padding'           : 10,
    'autoScale'         : true,
    'cyclic'            : true,
    'overlayOpacity'    : 0.7,
    'overlayColor'      : '#000000',
    'transitionIn'      : 'fade',
    'transitionOut'     : 'fade',
    'titlePosition'     : 'over',
    'titleShow'         : false,
    'resize'            : 'Auto'
});

Has anyone else ever run into this issue?

Thanks in advance for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

只等公子 2024-10-05 04:38:21

弄清楚了...

这是我的 CSS 重置被 FancyBox CSS 绊倒了。我将 DIV 的框大小样式重置为“边框框”。

修复方法是进入 FancyBox CSS 并将包装、外部和内部 DIV 的框大小声明为“content-box”。

就像这样:

#fancybox-wrap {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: 20px;
z-index: 1101;
display: none;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

#fancybox-outer {
position: relative;
width: 100%;
height: 100%;
background: #FFF;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

#fancybox-inner {
position: absolute;
top: 0;
left: 0;
width: 1px;
height: 1px;
padding: 0;
margin: 0;
outline: none;
overflow: hidden;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

希望这能帮助其他遇到这个问题的人。

Figured it out ...

It was my CSS reset that was being tripped-up by the FancyBox CSS. I reset the box-sizing style of DIV's to 'border-box'.

The fix was to go into the FancyBox CSS and declare the wrap, outer, and inner DIV's box-sizing to be 'content-box'.

Like so:

#fancybox-wrap {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: 20px;
z-index: 1101;
display: none;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

#fancybox-outer {
position: relative;
width: 100%;
height: 100%;
background: #FFF;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

#fancybox-inner {
position: absolute;
top: 0;
left: 0;
width: 1px;
height: 1px;
padding: 0;
margin: 0;
outline: none;
overflow: hidden;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-safari-box-sizing: content-box;
box-sizing: content-box;
}

Hopefully that will help somebody else that runs into this.

蓝海似她心 2024-10-05 04:38:21

以上对我不起作用(FB 3beta)。

这是我的解决方案:

.fancybox-wrap, .fancybox-wrap *{
    -moz-box-sizing: content-box !important;
    -webkit-box-sizing: content-box !important;
    -safari-box-sizing: content-box !important;
    box-sizing: content-box !important;
}

Above did not work for me (FB 3beta).

This is my solution:

.fancybox-wrap, .fancybox-wrap *{
    -moz-box-sizing: content-box !important;
    -webkit-box-sizing: content-box !important;
    -safari-box-sizing: content-box !important;
    box-sizing: content-box !important;
}
Oo萌小芽oO 2024-10-05 04:38:21

我遇到了同样的问题,弹出窗口中显示任意 HTML。我发现这就是修复它所需的全部内容(当使用 Eric Meyer 的 reset.css 时)是这样的:

.fancybox-overlay
{
    line-height: normal;    
}

reset.css 文件中的违规代码是这样的

body 
{
    line-height: 1;
}

免责声明:仅在 IE9 和 Chrome 中测试 - 但它似乎有效。
这适用于撰写本文时最新版本的 fancybox。

I had the same problem with arbitrary HTML showing in the popup. I found this was all that was necessary to fix it (when using Eric Meyer's reset.css) is this:

.fancybox-overlay
{
    line-height: normal;    
}

The offending code in the reset.css file was this

body 
{
    line-height: 1;
}

Disclaimer: Tested only in IE9 and Chrome - but it appears to work.
This is for whatever the latest version of fancybox is at time of writing.

栀梦 2024-10-05 04:38:21

我还发现,摆脱框大小调整的全局重置有所帮助:

/*
*,
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing:    border-box;
box-sizing:         border-box;
*/

烦人的部分是找到所有依赖 border-box 的项目,然后仅为这些项目启用它。对我来说幸运的是,到目前为止我只找到了 3 个。 Firebug/开发者工具对解决这个问题有很大帮助。

I also found that getting rid of the global reset for box-sizing helped :

/*
*,
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing:    border-box;
box-sizing:         border-box;
*/

The annoying part is finding all the items that were relying on border-box and then enabling it for JUST those items. Luckily for me there were only 3... that I've found so far. Firebug / Developer Tools helped a lot to figure it out though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文