Você está procurando a arquiteta e designer carioca Lia Siqueira? Clique aqui

Testado e aprovado no Firefox e I.E

Banners em DIVs flutuantes são ótimos em substituir os finados pop-ups. Um bom exemplo pode ser visto em portais como Uol e outros de tenham muita publicidade, são muito usados…

Pra fazer o que tinha em mente eu precisava de três informações:

1- Como colocar uma DIV por cima do conteúdo da página.
2- Em casos de Flash, como deixar o fundo transparente.
3- Como fechar a DIV após a exibição, utilizando um link/botão.

Resolvendo as questões:

1- Pra colocar a DIV por cima do conteúdo eu já sabia que bastava usar as propriedades:

position:absolute; z-index:1;

Ok. Next.

2- Pra deixar o Flash com fundo transparente basta colocar entre as tags a linha:

<span> </span>

Pra quem usa o Dreamweaver, quando inserimos um SWF e aparece um bloco de linhas de códigos, geralmente vem com <span> </span>, daí é só trocar o opacit por transparent e pronto.

3- Agora, pra fechar DIVs é que é mais difícil. Eu já sabia da existencia da propriedade visibility:hidden; no CSS, mas não sabia como fazer uma DIV mudar de propriedades ou de classe por um link.

Pesquisei por vários fóruns mas não consegui uma solução, já tava ficando com raiva quando pedi ajuda do meu amigo Ruan que me passou um link ensinando a Exibir e esconder DIV com JavaScript, e pronto, problema resolvido.

Vamos ao que interessa:

1º No código da sua página, cole isso antes da tag :

Esse é o CSS que vai formatar a DIV que vai conter seu banner:

<!-- #nomeDiv{ position:absolute; width:200px; height:200px; z-index:1; left: 166px; top: 209px; } #nomeDiv a{ padding:5px; border:1px solid #000; text-decoration:none; background:#000; color:#fff; } #nomeDiv a:hover{ background:#fff; color:#000; } -->

Esse é o JavaScript que vai fazer o link Fechar funcionar:

<script>// <![CDATA[ function controlaCamada(nomeDiv) { if( document.getElementById(nomeDiv).style.visibility == "hidden" ) { document.getElementById(nomeDiv).style.visibility = "visible"; } else { document.getElementById(nomeDiv).style.visibility = "hidden"; } } // ]]></script>

2º Agora, depois da tag , cole isso:

ESPAÇO

3º Onde está escrito ESPAÇO, insira o conteúdo do seu banner, pode ser uma imagem, ou textos, ou imagem e textos, ou um SWF, qualquer coisa. Eu como sou nada criativa, fiz um quadradinho andando no seu quadrado, só a nível de demonstração.

4º Antes do código do SWF que vc acabou de inserir, coloque isso:

<a onclick="controlaCamada('nomeDiv')" href="#">Fechar</a>

5º Agora teste. É pra tá funcionando, que nem tá aqui.

Obs.: Onde vc ver “nomeDiv” é o nome que a DIV que contém seu banner deve ter. Caso vc resolva mudá-lo, certifique-se de muda-lo também no CSS e no JavaScript, caso contrário, vai dar zica.

:P

♥ Download dos arquivos do meu exemplo ♥

P.S: Esse post é um presente de Natal pro meu amigo Renzo.

Gostou desse Post?

Tá calor em Manaus!! Que tal pagar um sorvete pra mim?

17 Comentários em “Banner com DIV Flutuante e Transparente”

  1. Sissy Says:

    A coisa mais linda teu site.

    ;)

  2. Jhonny Says:

    Extraordinária explicação, agradeço por ter tamanha paciência e força de vontade, espero com meus sinceros votos de sorte, que continue com seu blog, e que seja ponto de referência para muitos…
    Abraços.

    At.:
    Jhonny.
    goDesigner
    http://www.godesigner.com.br

  3. Gustavo Caselato Says:

    Bem, o tópico é antigo mas acho que vale a pena.

    Para fechar a DIV do Flash transparente através do flash é só colocar uma ação no botão fechar (dentro do flash), para que leve o filme a um frame vazio no _root. ex:

    on (release)
    {
    _root.gotoAndPlay(5);
    }

    onde o frame 5 está vazio.

    No frame 5 coloque a ação:

    getURL(“javascript:controlaCamada(‘nomeDiv’);”);
    stop();

    prontinho, fecha a DIV de dentro do Flash.

    Excelente dica, me concedeu mais uns anos de vida!

  4. Thiago Luiz Rodrigues Says:

    Boa noite Lia, estava a navegar na web e olhei seu portfólio, gostei muito, são excelentes front-end’s web. Meu nome é Thiago Luiz Rodrigues, moro em Rondônia sou arquiteto SOA de uma empresa, estamos em um projeto de e-commerce, e precisamos de um designer de interface para algumas telas, queria saber se você esta disponível para ums projetos free-lance durante do desenvolvimento do e-commerce, e após tambem eu preciso que vocês conheça de XHTL, CSS, e estruturação de conteúdo em tablelss e o mais importante criatividade para criar.

    Precisamos disso com urgência, pois o projeto esta um pouco atrasado abaixo segue o link do sistema.

    http://www.gramotos.com
    http://www.gramotos.com/adm

    por favor me add no msn para falarmos

    msn: bobboyms@hotmail.com

    e-mail: bobboyms@yahoo.com.br

    cell: (69) 9954-6263

    Aguardo seu contato com urgência para conversarmos

  5. viConcursos Says:

    muito bom esse artigo.. parabens. acho que hoje o css tem revolucionado o mundo web facilitou muito..

  6. Diego Says:

    segui o seu tutorial e del certo, mas quaando clico em fechar o div,q esta meu swf, o som do meu swf continua.
    sabe porque.

    Mas obrigado era isso q estava procurando.

    Diego

  7. claudio Says:

    bonito blog

  8. Lia Says:

    Diego,

    Então, pra resolver esse seu problema você pode fazer o seguinte: No CSS, onde você coloca visibility:hidden; pra esconder a DIV, você substitui por display:none;. Não testei, mas acredito que funcione.

    Boa sorte! =)

  9. Diego Says:

    Ola, tentei a substituição e não consegui.

    Seria nesta linha neh:
    ( document.getElementById(nomeDiv).style.visibility == “hidden” ) , mas como ficaria?

    Obrigado

    Diego

  10. Maico Says:

    olá, estou fazendo um banner exatamente nesses moldes, um quadro transparente de 500×425 com, digamos, um quadrado “andando na tela”. Notei que seu banner possui o mesmo comportamento indesejável que o meu: nos navegadores diferentes do Internet Explorer, a área transparente do quadro tampa o texto que está, tornando ele inacessível enquando a animação está visível.
    Será que alguém sabe como resolver isso?

    Para você entender melhor, a animação começa como um pequeno banner de 120×40, e não deve incomodar o usuário, somente se ele clicar em cima, o banner deve crescer e ficar com 500×425. Enquando o banner não foi clicado, toda a área de 500×425 fica inacessível no Firefox, Chrome, Opera, etc. Só funciona no Internet Explorer.
    Estou quase concluindo que não há solução.

  11. Rangel Says:

    Curti o banner, muito bom, de forma legal! não cheio de frescura como muitos fazem pelo dreamweaver!!!

    Obrigado.

  12. Roberto Lunelli Says:

    Vale acrescentar que o z-index:1 só vai servir quando o site não tiver muito conteudo… ou seja… os elementos de fato estarem atrás do z-index:1

    Pra não ter surpresas, basta colcoar o z-index:1000, assim terá certeza que estará acima de tudo sempre.

    Apenas colaborando
    Cai aqui por acaso.

    Visite meu site tbm… http://www.canaldev.com.br, vai aprender muito lá

    Beijo

  13. Rafael Says:

    boa tarde, está de parabéns, fiz aqui e funcionou certinho, queria dar uma incrementada no meu código, como faço pra bloquear a barra de rolagem da pagina que está atras do banner?

  14. Henrique Says:

    Olá!
    Estava enfrentando problemas com o Firefox para fechar esse banner flutuante, mas esse script resolveu o problema.
    obs: eu não usei flash no conteúdo da Layer, era uma imagem apenas…

    Obrigado!

  15. jaque Says:

    me salvou hoje
    parabens!!!

  16. adailton Says:

    poxa vida e eu se matando a 15 dias para tentar colocar botoes submit com fundo transparente em cima do iframe e voce com essa jóia de codigo muito parabéns.

  17. Paulo Says:

    muito bom! linda!

Faça um comentário sobre o post