Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como fazer pra aparecer um balão de texto

Usando a função onmouseover eu consegui gerar no meu console mensagens simplesmente passando o mouse sobre o botão, minha pergunta, como faço pra aparecer aqueles balões de texto no mouse quando passo ele por cima de algum elemento?

2 respostas
solução!

Oi Pedro, para fazer esse balões daria pra usar um onmouseover também, pensando agora eu vejo a forma mais simples de fazer que seria:

Vc cria um elemento na tela posicionado com position absolute logo acima do elemento no qual vc quer que o balao apareça. Deixa ele por default como display:none, quando vc passar o mouse em cima coloca pra ele ficar display: block e volta a aparecer. Pronto, vc tem o balaozinho em cima quando o mouse estiver em cima (:

Esse seria um passo a mais do que vc está vendo agora no curso, fica o desafio, vai ser bem legal (:

Abraço!

Opa, e ai Pedro, tudo bem?

Então fiz da seguinte forma para você ver o modo de criar do zero um balão basico:

HTML: Criei um botao e uma mensagem dentro deste botao

<body>
<button type="button" onmouseover="showMessage()" onmouseout="hideMessage()">
  Exemplo
  <div class="mensagem" >Olá mundo</div>
  </button>
</body>

CSS:

body{
  position:absolute;
  width:100%;
  height:100%;
}

button{
  position:absolute;
  margin:auto;
  width:100px;
  height:30px;
  left:0;
  right:0;
  bottom:0;
  top:0;
}

/* Aqui a mensagem ja está com o display none para já começar escondida*/
.mensagem{
  display:none;
  position:absolute;
  top: -100%; /* Usei % para que voce entenda que da para se adaptar com o tamanho do botão/container ou qualquer outra coisa a qual a mensagem esta relacionada*/
  left:0;
  right:0;
  margin: auto;
  width:100px;
  height:20px;
  border:1px solid red;

/*Caso queira, por exemplo que fique ao lado 
é so mudar o top para 0 e o left ou o right setar com 100%
  top:0;
  left:100%;
  right:0;
  margin: auto;
  width:100px;
  height:20px;
  border:1px solid red;

*/
}

JS:

let mensagem = document.querySelector(".mensagem") ;

// mostra a mensagem
function showMessage(){   
   mensagem.style.display = "block";   
 }
// esconde a mensagem
function hideMessage(){
  mensagem.style.display = "none"; 
}

Link de demonstraçao

https://codepen.io/pedrobslisboa/pen/WJxdrv?editors=1000

Aqui está um exemplo dele funcionando, deixei o border: 1px solid red ao inves de um background pois o que eu quero te mostra é o esqueleto de formaçao e nao o estilo :)

Espero ter ajudado

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software