iframe没有加载

时间:2011-07-14 04:21:12

标签: jquery iframe safari

这只发生在Safari中。

www.dalworthrestoration.com

  • 请注意精选内容jQuery轮播

  • 内容自动循环前进,当它到达#3,欢迎来到Dalworth视频时,它会正常显示。

但问题在于:

  • 如果你允许它向前循环到第4个缩略图然后再回到#3,欢迎来到Dalworth视频,iframe被错误定位,它只显示图像的三分之一。

    < / LI>
  • 如果您滚动,视频会突然正确地弹出来。

我完全被难倒了。

2 个答案:

答案 0 :(得分:1)

这是Safari中的渲染问题。这不是你可以特别修复的东西,缺少一个关于标签更改的hackish功能使页面向下滚动并立即回到原来的位置。

但是,如果他们已启用HTML 5视频,则可以使用它:http://www.youtube.com/html5

答案 1 :(得分:1)

编辑:完全新答案。

使用Safari的调试器,这个技巧对我有用。在隐藏父li之前,将iframe的大小调整为0x0。然后在你隐藏了li后立即调整大小。这来自您的setSlider()函数:

list.find("iframe").attr({ height: 0, width: 0 });
list.filter(':visible').hide().end().eq(index).fadeIn();
list.find("iframe").attr({ height: 340, width: 560 });

编辑:我在v5.0.5中使用了这个。如果你看到我的原始答案,那基本上就是这样。用这一个替换你的点击处理程序,在转换后滚动1px并返回:

btn.click(function(){
    index=jQuery(this).index();
    list.filter(':visible').hide().end().eq(index).fadeIn();
    scrollTo(document.body.scrollLeft, document.body.scrollTop+1);
    scrollTo(document.body.scrollLeft, document.body.scrollTop-1);
    btn.removeClass('fc_current');
    btn.eq(index).addClass('fc_current');
    clearTimeout(timer);timer=undefined;setSlider();
});

你在过渡时看到一个快速闪光灯,但它不是很明显。