Estou tentando implementar um menu de navegação suspensa multinível horizontal. Imediatamente abaixo (verticalmente) do menu, tenho um vídeo do YouTube incorporado via iframe. Se eu passar o mouse sobre um dos itens de navegação de nível principal no Firefox, o menu suspenso aparecerá corretamente na parte superior do vídeo.
No Chrome e IE9, no entanto, apenas uma parte da lista suspensa é visível na pequena região de espaço que tenho entre o menu e o iframe. O resto parece estar por trás do iframe.
O problema parece estar relacionado ao vídeo do YouTube, não ao iframe. Para testar, direcionei o iframe para outro site, e não para o vídeo, e o menu suspenso funcionou bem, mesmo no IE.
- Pergunta 1: WTF?
- Pergunta 2: Por que, mesmo se eu explicitar
z-index:-999 !important;
o iframe, esse problema ainda ocorre?
Existe algum CSS interno que o código de incorporação do YouTube inclua que de alguma forma substitua as coisas?
<embed wmode="transparent" ...>
seção é tudo que você precisa (pelo menos no firefox) e não há necessidade de se preocupar com a configuração wmode emurl
'sparam
' s ouiframe
sRespostas:
Tente adicionar o wmode, ele parece ter dois parâmetros.
Não consigo encontrar um motivo técnico pelo qual ele funcione ou muito mais explicações, mas veja esta consulta .
ou isto
fonte
wmode
também funcionará, embora não esteja documentado.A resposta de Joshc estava no caminho certo, mas descobri que ela exclui totalmente a string de consulta
?rel=0
e a substitui pelo?wmode=transparent
item - que tem o efeito de exibir a lista de vídeos sugeridos do YouTube no final da reprodução, mesmo que você não tenha originalmente ' Não quero que isso aconteça.Alterei o código para que o
src
atributo do vídeo incorporado seja verificado primeiro, para ver se já existe um ponto de interrogação?
(porque isso denota a presença de uma sequência de consulta pré-existente, que pode ser algo parecido,?rel=0
mas poderia, em teoria qualquer coisa que o YouTube escolha anexar no futuro). Se já existe uma string de consulta, queremos preservá-la, não destruí-la, porque representa uma configuração escolhida por quem colou neste vídeo do YouTube e, provavelmente, a escolheu por um motivo!Portanto, se
?
for encontrado,wmode=transparent
ele será anexado usando o formato:&mode=transparent
para marcá-lo no final da cadeia de consulta preexistente.Se não
?
for encontrado, o código funcionará exatamente da mesma maneira que originalmente (na postagem de toomanyairmiles ), acrescentando apenas?wmode=transparent
uma nova string de consulta ao URL.Agora, independentemente do que pode ou não estar no final do URL do YouTube como uma string de consulta, ele é preservado e os
wmode
parâmetros necessários são injetados ou adicionados sem danificar o que estava lá antes.Aqui está o código para inserir em sua
document.ready
função:fonte
opaque
nãoOpaque
(note o caso)Basta adicionar um desses dois ao src url:
fonte
Eu tenho o mesmo problema no YouTube iframe incorpora apenas no Internet Explorer embora.
O índice Z estava sendo totalmente ignorado ou o vídeo em flash estava aparecendo no índice mais alto possível.
Foi isso que eu usei, adaptando levemente o script jquery acima.
Meu código de incorporação, direto do YouTube ...
O jQuery ligeiramente adaptado da resposta acima ...
Basicamente, se você não selecionar Mostrar vídeos sugeridos quando o vídeo terminar nas configurações de incorporação, você terá um
?rel=0
no final do seu"src"
URL. Então, eu adicionei o bit de substituição, caso?rel=0
exista. Caso contrário?wmode=transparent
, não funcionará.fonte
Podemos simplesmente adicionar
?wmode=transparent
ao final do URL do YouTube. Isso instruirá o YouTube a incluir o vídeo com o conjunto wmode. Portanto, seu novo código de incorporação terá a seguinte aparência: -fonte
Somente este funcionou para mim:
Eu o carrego no arquivo footer.php do Wordpress. Código encontrado no comentário aqui (obrigado Gerson)
fonte
wmode = opaco ou transparente no início da minha string de consulta não resolveu nada. Esse problema para mim ocorre apenas no Chrome e não em todos os computadores. Apenas um processador. Também ocorre nas incorporações do vimeo e possivelmente em outras.
Minha solução para anexar ao evento 'mostrado' e 'oculto' dos modais de auto-inicialização que estou usando, adicione uma classe que defina o iframe para pixels 1x1 e remova a classe quando o modal for fechado. Parece que funciona e é simples de implementar.
fonte
As respostas acima realmente não funcionaram para mim, eu tive um evento de clique no invólucro e, por exemplo, 7,8,9,10 ignorou o índice z, portanto, minha correção foi dar ao invólucro uma cor de fundo e, de repente, funcionou . Embora fosse suposto ser transparente, defini o invólucro com a cor de fundo branco e depois a opacidade 0,01, e agora funciona. Eu também tenho as funções acima, então pode ser uma combinação.
Eu não sei por que funciona, estou feliz por fazer.
fonte
O código Javascript do BigJacko funcionou para mim, mas no meu caso eu tive que adicionar um código "noconflict" do JQuery. Aqui está a versão revisada que funcionou no meu site:
fonte
Tudo o que você precisa no iframe é:
e no URL:
fonte