Show e Hide (Idéia para Div Seguindo o mouse)

Julho 19, 2007 on 3:32 pm | In php, JavaScript, Tutorial |

Resolvi escrever sobre uma idéia que rola bastante por ae, de um div seguir o mouse, porém somente apareçer (mostrar a div) quando o mouse esta por cima de um link, como comentado no topico Div Seguindo o Mouse, somente irei agora adicionar algumas poucas linhas de códigos, recomendo que antes leia o outro topico para não ficar perdido.

A idéia basica de ter varias imagens seguindo o mouse porém so ativa-las (mostra-las) quando o mouse passar por cima de algum link, div, tabela, celula; enfim um objeto qualquer. No nosso caso a escolha foi uma DIV.

Primeiro vamos criar a div igual anteriormente, porém vamos agora, esconder essa div, para que não apareça na tela:

HTML:
  1. <div id="MinhaDiv1" style="position:absolute; overflow:hidden; visibility: hidden;display: none; z-index:999; background-color:#ffffcc;"><img xsrc="img/01.jpg" alt="Carro"></div>
  2. <div id="MinhaDiv2" style="position:absolute; overflow:hidden; visibility: hidden;display: none; z-index:999; background-color:#ffffcc;"><img xsrc="img/02.jpg" alt="Carro"></div>

Segundo passo é criar os links, no nosso caso como dito anteriormente vamos criar os links apartir de uma div, apartir dessa div iremos chamar a Função javascript que irá mostrar a div referente, iremos usar 2 ações: onmouseover (Ação executada quando o mouse esta em cima do objeto) e onmouseout (Ação executada quando o mouse esta fora do objeto, melhor quando ele sai do objeto). Ao executar a ação iremos chamar a função enviando 2 parametros, ID (dizendo qual DIV) e AÇÃO (qual ação tomar Mostrar/Esconder).

No nosso caso ação  1 mostra a div e ação parametro 0 esconde a div.

HTML:
  1. <div id="caixa" onMouseOver="SegueMouse('MinhaDiv1',1)" onMouseOut="SegueMouse('MinhaDiv1',0)"><a xhref="http://rafaelcunha.com/#">Carro importado
  2.  
  3. </a></div>
  4. <div id="caixa" onMouseOver="SegueMouse('MinhaDiv2',1)" onMouseOut="SegueMouse('MinhaDiv2',0)"><a xhref="http://rafaelcunha.com/#">Se meu fusca falasse
  5.  
  6. </a></div>

Agora basta usarmos a função do POST anterior e complementar nela a idéia de mostra e esconder a div, ficando o script completo da maneira abaixo:

JAVASCRIPT:
  1. function SegueMouse(id,flagit) {
  2. var divName = id; // div that is to follow the mouse
  3. // (must be position:absolute)
  4. var offX = 35;          // X offset from mouse position
  5. var offY = 35;          // Y offset from mouse position
  6.  
  7. function mouseX(evt) {if (!evt) evt = window.event; if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return 0;}
  8. function mouseY(evt) {if (!evt) evt = window.event; if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return 0;}
  9.  
  10. function follow(evt) {if (document.getElementById) {var obj = document.getElementById(divName).style; obj.visibility = 'visible';
  11. obj.left = (parseInt(mouseX(evt))+offX) + 'px';
  12. obj.top = (parseInt(mouseY(evt))+offY) + 'px';}}
  13. document.onmousemove = follow;
  14. if (flagit=="1"){
  15. if (document.layers) document.layers[''+id+''].display = ""
  16. else if (document.all) document.all[''+id+''].style.display = ""
  17. else if (document.getElementById) document.getElementById(''+id+'').style.display = ""
  18. }else
  19. if (flagit=="0"){
  20. if (document.layers) document.layers[''+id+''].display = "none"
  21. else if (document.all) document.all[''+id+''].style.display = "none"
  22. else if (document.getElementById) document.getElementById(''+id+'').style.display = "none"
  23. }
  24. }

Para ver o exemplo em execução basta acessa o link : Idéia para Div seguindo o mouse. Sinta-se livre para comentar, duvidar, justificar e até se justificar. ah?


6 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Filho adorei, muitas informações utéis, sobre todos os tipos de assuntos.
    Com meu filho é inteligente !!!!! rs

    Beijos

    Mammy

    Comment by Noemi — Julho 20, 2007 #

  2. eu num entendo do que se trata, mas sei q manja.
    te amo amor.

    só passando pra te dar um Oi ;)

    Comment by Ju — Julho 20, 2007 #

  3. Cara

    Você não faz noção de como isso foi util pra mim.
    Parabens pelas informações, sao de grande utilidade mesmo.

    abcs

    Comment by Flavio — Outubro 8, 2007 #

  4. Disponha, fico feliz com a gratificação.

    abraços

    Comment by silici0 — Outubro 8, 2007 #

  5. Cara, muito interessante seu tutorial, só uma dia se interessar... poderia usar aqui:

    #
    obj.left = (parseInt(mouseX(evt))+offX) + 'px';
    #
    obj.top = (parseInt(mouseY(evt))+offY) + 'px';

    isso:

    #
    obj.left = (parseInt(mouseX(evt))+offX) + 'px';
    #
    obj.top = (parseInt(mouseY(evt))+offY)/2 + 'px';

    para deixar o eixo Y centralizado. Só uma sugestão. Abraço.

    Comment by E. Stein — Janeiro 21, 2008 #

  6. Parabens pelo facilidade de tratar desse assunto que está virando mania na web.

    parabens mesmo abraços

    atenciosamente orlando

    Comment by Orlando — Abril 22, 2008 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


 

 Assine o feed