Home Page Johny Lab
Link para a página de contato Fale comigo

siga-me: @JohnyLab

Pop-up não bloqueável

O código abaixo mostra como criar uma janela pop-up baseada em CSS, que torna-se visível quando uma função em JavaScript altera o atributo display e uma DIV é exibida por cima da página. Por não precisar abrir uma nova janela ou aba, o código na realidade não gera um pop-up, e sim uma parte do código fonte que estava oculto pelo estilo CSS display:none;, resultando em uma ilusão que o navegador não contará como uma janela a mais, e não bloqueará. (Se todo mundo soubesse, seria o fim do nosso sossego!)

  1. <html>
  2. <head><title></title>
  3. <style type="text/css">
  4. #popup{
  5. position: absolute;
  6. top: 30%;
  7. left: 30%;
  8. width: 300px;
  9. height: 150px;
  10. padding: 20px 20px 20px 20px;
  11. border-width: 2px;
  12. border-style: solid;
  13. background: #ffffa0;
  14. display: none;
  15. }
  16. </style>
  17. <script type="text/javascript">
  18. function fechar(){
  19. document.getElementById('popup').style.display = 'none';
  20. }
  21. function abrir(){
  22. document.getElementById('popup').style.display = 'block';
  23. setTimeout ("fechar()", 3000);
  24. }
  25. </script>
  26. </head>
  27. <body onload="javascript: abrir()">
  28. <DIV id="popup">
  29. <p>
  30. Esse é um exemplo de popup utilizando DIV. Dessa maneira esse
  31. pop-up não será bloqueado.
  32. </p>
  33. <p>
  34. <small><a href="javascript: fechar();">[X]</a></small>
  35. </p>
  36. </DIV>
  37. <br /><a href="javascript: abrir();">Abrir POPUP</a>
  38. <br /><a href="javascript: fechar();">Fechar POPUP</a>
  39. </body>
  40. </html>


O efeito é interessante pela simplicidade. Eu sou simplista a ponto de achar que o site do Google é um exemplo de design. Mas imagino o efeito que este código poderia causar com um pouco mais de estética. Os estilos de cor de fundo e borda da DIV usada para aparecer/desaparecer são totalmente dispensáveis, pois o que interessa são as dimensões e o posicionamento. Bastaria uma boa imagem de fundo para mudar totalmente a impressão causada pela pop-up. O resultado seria parecido com uma janela de boas vindas de algum aplicativo, com uma bela apresentação e causando uma boa primeira impressão. Talvez nenhum texto fosse necessário, e o efeito não pareceria irritante ou mal-educado se preservado o curto intervalo de duração de exibição da DIV. Para quem quer colocar uma propaganda, bastaria prolongar o tempo de exibição.

johnylab.net © 2010 - - Contato - Facebook - Twitter - LinkeIn