2010-04-06 11 views
1

J'utilise le plugin jQuery oembed pour afficher des vidéos à partir d'un flux Vimeo.jQuery plugin z-index problème

Le seul problème est qu'ils s'affichent en haut de mon menu de navigation. J'ai essayé de régler l'index z du menu mais cela ne fait aucune différence.

Une suggestion courante semble être de définir le paramètre wmode sur transparent ou opaque. Cependant, le passer en paramètre à la fonction oembed ne fait aucune différence.

Merci

Répondre

1

Vous pouvez utiliser votre propre fonction de rappel pour traiter le code renvoyé, il est donc possible de le modifier avant de l'insérer.

C'est quelque chose d'un peu laid qui fonctionne, mais j'espère que quelqu'un peut améliorer:

$(".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); 
    }); 

Cordialement,

Richard.

0

J'ai eu le même problème et voici ma solution:

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); 

    }); 

Je présente mes excuses pour le mélange de js/jquery. Je ne suis pas un expert en jquery par tous les moyens, donc si quelqu'un peut recoder cette solution en jquery droite ce serait rad.

0

Salut merci pour le partage de code.

J'ai ajouté ce qui suit juste avant le 'var code = -----;' au corps de la fonction getVideo ... dans jquery.oembed.js, et cela fonctionne. juste modifié les variables en conséquence.

si (oembed.code.indexOf ("wmode") < 0) { oembed.code = oembed.code.replace ("\ n }

Il est facile et simple.

Merci , Ayub