2011-10-20 70 views
1

更新了這個,因爲我發現它不一定是嵌套的IFRAME,但僅僅在IFRAMEd文檔中存在將破壞位置的Flash:fixed(也在IFRAME中)。IFRAME中的Flash,在Safari上,打破位置:固定元素

這是不真實的。在Safari(蘋果機):

  1. 閃存
  2. ...一個IFRAME內(例如,一個模式窗口,的fancybox等)
  3. ...會 「破發」 任何 「的位置是:固定」元素也在IFRAME中。

這裏有一個很好的例子:http://jsfiddle.net/6GP2A/需要注意的是,我們有:

  1. 包含閃存(YouTube影片)的IFRAME。
  2. 另一個iFrame的文檔中(的jsfiddle的IFRAME結果)

請注意這樣一個事實,視頻本身的iFrame是一個紅色的鯡魚。如果Flash僅僅是一個OBJECT標籤無法使用IFRAME,則會遇到同樣的問題。

如果你在Chrome中打開它,它將按預期工作。灰色的「你好,我是固定的」DIV(這是位置:固定)將保持固定在底部。

在Safari中,灰色的DIV會在您滾動頁面時滑動。

Arrrrgh!有什麼建議?無數的搜索沒有結果。謝謝!

回答

2

我遇到了同樣的問題,但是我們不能拒絕幀。 所以我調查這個問題,我發現了一些解決方案(我猜):

當在必要的框架中有嵌套閃光的div和風格的div與「position:relative; z-index:-1; 「那麼在框架中具有「position:fixed」的元素看起來很好。

例如

<html> 
<head> 
    <style> 
     .menu { 
      position: fixed; 
      top: 0; 
      left: 0; 
      width: 100%; 
      height: 40px; 
     } 
     .footer { 
      width: 100%; 
      height: 40px; 
      position: fixed; 
      bottom: 0; 
      left: 0; 
     } 
    </style> 
</head> 
<body> 
    <frameset rows="20,*"> 
     <frame>...</frame> 
     <frame> 
      <div class="menu">Header</div> 
      <!-- Some content here --> 
      <object width="440px" height="220px"> 
       <param value="opaque" name="wmode"> 
       <param value="http://youdomain.com/you_flash.swf" name="movie"> 
       <embed width="440px" height="220px" type="application/x-shockwave-flash" src="http://youdomain.com/you_flash.swf"> 
      </object> 
      <!-- Some content here --> 
      <div style="position: relative; z-index:-1;"> 
       <object width="10px" height="10px"> 
        <param value="opaque" name="wmode"> 
        <param value="http://youdomain.com/fake_flash.swf" name="movie"> 
        <embed width="10px" height="10px" type="application/x-shockwave-flash" src="http://youdomain.com/fake_flash.swf"> 
       </object> 
      </div> 
      <div class="menu">Footer</div> 
     </frame> 
    </frameset> 
</body> 
</html> 

一個帶有閃光燈格就夠了。所有其他可能是原樣。

一句話 - 你不能點擊這個div中的flash。我寫了一個腳本,它將動態地將帶有空白閃存的div添加到Mac上的Safari。

希望這是有幫助的。

願力量與你同在。