Safari中的FlexSlider视频iframe问题

时间:2012-03-02 18:22:07

标签: jquery iframe embedding vimeo

我正在使用Flexslider,我在iframe中有一个带嵌入式Vimeo视频的滑块,然后滑块的其余部分填充了与视频大小相同的图片。

滑块+视频在大多数浏览器EXCEPCT Safari中运行良好。当Safari加载滑块时,视频似乎在一个奇怪的位置稍微偏移。视频播放有些不稳定,控件没有响应。这非常令人沮丧,因为滑块适用于所有其他浏览器,FlexSlider的文档说它支持所有HTML元素。

我可以采取哪些措施让这个视频在Safari中正常播放吗?

这是我的代码

<div class="flexslider">
  <ul class="slides">
   <li>
     <div id="iframeContainer">
       <iframe src="http://player.vimeo.com/video/35534572?title=0&amp;api=1&amp;byline=0&amp;portrait=0&amp;color=ffffff" width="960" height="540" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
     </div>
   </li>
   <li>
      <img src="MOTOROLA_BTS_01.jpg" />
   </li>
   <li>
      <img src="MOTOROLA_BTS_02.jpg" />    
  </li>
  </ul>
</div>

和相应的CSS:

.flex-container a:active,
.flexslider a:active {outline: none;}
.slides,
.flex-control-nav,
.flex-direction-nav {margin: 0; padding: 0; list-style: none;} 

/* FlexSlider Necessary Styles
*********************************/ 
.flexslider {width: 960px; margin: 0; padding: 0;}
.flexslider .slides > li {display: none;-webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
.flexslider .slides img {max-width: 100%; display: block;}
.flex-pauseplay span {text-transform: capitalize;}

/* Clearfix for the .slides element */
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;} 
html[xmlns] .slides {display: block;} 
* html .slides {height: 1%;}

/* No JavaScript Fallback */
/* If you are not using another script, such as Modernizr, make sure you
 * include js that eliminates this class on page load */
.no-js .slides > li:first-child {display: block;}

.flex-direction-nav li a {width: 60px; height: 60px; margin: -13px 0 0; display: block; position: absolute; top: 50%; cursor: pointer; text-indent: -9999px;}
.flex-direction-nav li .next {background-image:url(Arrow_02_B.png);margin-top:-300px;margin-left:900px;}
.flex-direction-nav li .prev {background-image:url(Arrow_02_A.png);margin-top:-300px;}
.flex-direction-nav li .disabled {opacity: .3; filter:alpha(opacity=30); cursor: default;}


#iframeContainer{
    width:960px;
    height:540px;
}
编辑:我在页面上的滑块之外放置了一个嵌入式视频,它甚至没有出现在Safari中。我得到了一些我可以看到一些视频的地方。同样,它在所有其他浏览器中都能正确显示。

编辑:更多疑难解答。我把滑块和视频放在一起。视频仍在Safari中断。但是,如果我没有初始化幻灯片,视频工作正常。该视频不在幻灯片放映内,完全独立。但是当我重新开启幻灯片时,视频会中断。

2 个答案:

答案 0 :(得分:0)

以防万一其他人遇到此问题,看起来视频功能已添加到flexslider。我遇到了同样的问题,但在初始化flexslider后将视频标志设置为true后,视频开始工作。

$('.flexslider').flexslider({
    animation: "slide",     
    video: true
});

另一方面,视频标记使滑块在触摸设备上使用时响应性降低。它仍然有效,但在尝试滑动到下一个图像/视频时会有延迟。

答案 1 :(得分:0)

遇到同样的问题。问题是由于safari中的transform3d错误。 有关完整问题和解决方法,请参阅以下链接。

https://github.com/woothemes/FlexSlider/issues/88

总结修复:

  

下载最新版本的v1.8并使用属性useCSS: false.它将删除&gt;使用translate3d,这会导致webkit浏览器出现这些视频错误。

虽然这是一个很老的帖子。希望它能在将来帮助某人:)