【问题标题】:mysterious whitespace around SWF in fancyboxfancybox 中 SWF 周围的神秘空白
【发布时间】:2012-03-13 15:57:06
【问题描述】:

我在一个 iframe 中有一个 swf,我在 fancybox 中显示。它在我的本地服务器上看起来很棒,但在使用 FF10 在线查看时有额外的空白。疯狂的!相同的代码,相同的浏览器,不同的服务器??以前从来没有过。

编辑:根据一些有用的建议,我发现在线版本(在下面的链接中)在 Chrome 中看起来也很完美。所以问题似乎出在 Firefox 上。我尝试清除缓存并重新启动并将版本添加到 iframe 链接中的 swf.html?ver=3 中。

为什么在 FF 中查看 localhost 与以下链接时,此页面看起来不同?!

演示在这里:http://memelab.com.au/flipbook/index.html

我希望 swf(翻书专辑)完全适合 .fancybox-inner div,swf 边缘没有空白。图像本身有空白(我刚刚在第一页添加了一个红色边缘,可以看到顶部和侧面 - 底部被切断),但是可以通过页面之间的阴影以及页面之间的阴影看到 swf 的边缘页面角提升。

我在修剪空白时遇到了很大的麻烦,发现将 swf 放在 iframe 中可以得到更好的结果,因为我可以在对象参数中指定 scale="noScale"。

我在追踪 Firebug 中的问题时遇到了麻烦,因为有太多重叠的高度/宽度属性,所以成功几乎是反复试验。只是看不出为什么它在上传时有所不同!

我的脚本:

$(document).ready(function() {
    $("a.various").fancybox({
        width       : 1008,
        height      : 792,
        minWidth    : 1048,
        minHeight   : 832,
        autoSize    : false,
        padding     : 20,
        wrapCSS     : 'pageflip'

    });
});

以及 swf.html 中的对象:

<object width="1008px" height="792px" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">

<param name="scale" value="noScale" />
<param name="salign" value="TL" />

<param value="transparent" name="wmode">
<param value="true" name="allowfullscreen">
<param value="always" name="allowscriptaccess">
<param value="pageflip.swf" name="movie">

<embed width="1008px" height="792px" wmode="direct" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" src="pageflip.swf" scale="noScale"></object>

我认为这可能是缓存问题(旧代码),但将 ?ver=2 放在末尾对我不起作用。

我很难过.. 有什么建议吗?谢谢,蒂姆

(为了记录,我正在从本地主机(XAMPP)运行文件,并在上传时在 LAMP 服务器上运行。)

【问题讨论】:

    标签: jquery object flash fancybox scale


    【解决方案1】:

    如果我对您的理解正确,您的问题是 4.jpg 图像 http://memelab.com.au/flipbook/pages/4.jpg - 这实际上在图像本身内包含所有空白 - 使 iframe 比它的宽度高。除此之外,我在你的 Flash 电影周围看不到任何空白。

    【讨论】:

    • 真的!?虽然图像本身有大量的空白,但 swf 的边界可以通过它在页面之间显示的阴影以及页面翻页时的边缘看到。我仍然在 swf 本身周围看到空白 :( 感谢您的关注!
    • 谢谢Jimmery - 请问您使用的是什么浏览器? Chrome 显示正确结果,FF10 显示对我来说有差距,TIA
    【解决方案2】:

    不确定我是否理解正确,但这是你想要的吗?

    $(document).ready(function() {
        $("a.various").fancybox({
            width       : 1008,
            height      : 792,
            minWidth    : 1008,
            minHeight   : 792,
            autoSize    : false,
            padding     : 0,
            wrapCSS     : 'pageflip'
    
        });
    });
    

    【讨论】:

    • 感谢您的输入,这确实删除了 .fancybox-outer 周围的填充。我的问题是我在 上看到了一些空白(不确定是否是填充等)嵌入标签的内部(我认为)当我通过firefox在线查看页面时。 FF+本地副本完美,Chrome+在线版完美!当我得到代表时,我想给你投票。现在我会澄清我的问题 - 这个问题似乎与浏览器有关。我会澄清我的问题..