2010-04-06 56 views
1

我使用jQuery oembed插件來顯示來自Vimeo提要的視頻。jQuery oembed插件z-index問題

唯一的問題是它們顯示在我的導航菜單的頂部。我曾嘗試設置菜單的z-index,但這沒有什麼區別。

一個常見的建議似乎是將wmode參數設置爲透明或不透明。但是,將此作爲參數傳遞給oembed函數沒有任何區別。

感謝

回答

1

您可以使用自己的回調函數來處理返回的代碼,因此它可以插入之前對其進行修改。

這東西有點醜,但工作我希望有人能改善:

$(".oembed").oembed(null, null, function(container, oembed) { 
     if (oembed == null) 
      return; 
     if (oembed.type == "video" && oembed.code != null) { 
      if (oembed.code.indexOf("wmode") < 0) { 
       oembed.code = oembed.code.replace("<embed ", "<param name=\"wmode\" value=\"transparent\"></param>\n<embed "); 
       oembed.code = oembed.code.replace("<embed ", "<embed wmode=\"transparent\"");           
      } 
     } 
     $.fn.oembed.insertCode(container, "replace", oembed); 
    }); 

問候,

理查德。

0

我有同樣的問題,這是我的解決方案:

var fixZindex = function(){ 

     $(".oembed").css('z-index','1').css('position','relative'); 
     $("object").css('z-index','1').css('position','relative'); 
     $("embed").css('z-index','1').css('position','relative'); 

     var elements = document.getElementsByTagName('embed'); 
     for(var i=0; i< elements.length; i++){ 

       elements[i].setAttribute("wmode","transparent"); 

       var para = document.createElement("param"); 
       para.setAttribute("name","wmode"); 
       para.setAttribute("value","transparent"); 

       elements[i].parentNode.appendChild(para) 

     } 

    } 

    $(document).ready(function() { 
     $(".oembed").oembed(null, 
      { 
      embedMethod: "append", 
      maxWidth: 500 
      }); 

     setTimeout('fixZindex()',1000); 

    }); 

我的JS/jQuery的的混合道歉。我不是一個jQuery的專家,所以如果有人可以用直接jQuery來重新編碼這個解決方案,那就是rad。

0

嗨,感謝代碼共享。

我在'var code = -----'之前添加了以下內容: 到jquery.oembed.js中的getVideo ...函數體,它工作。只是相應地修改了變量。

如果(oembed.code.indexOf( 「WMODE」)< 0){ oembed.code = oembed.code.replace(「\ n }

它容易和簡單。

由於, Ayub