2010-08-24 28 views
22

estoy jugando con el evento onmouseover en javascriptdel cuadro de descripción usando "onmouseover"

Me gustaría una pequeña caja a aparecer y permanecer hasta que no hay onmouseover más

Creo que se llama una descripción caja, pero no estoy seguro.

¿Cómo puedo obtener una pequeña caja para que aparezca un texto personalizado cuando coloco el mouse sobre cierto texto, y desaparezco una vez que muevo el mouse a un objeto diferente ...?

Respuesta

29

Suponiendo popup es el ID de su "caja de descripción":

HTML

<div id="parent"> 
This is the main container. 
<div id="popup" style="display: none">some text here</div> 
</div> 

JavaScript

var e = document.getElementById('parent'); 
e.onmouseover = function() { 
    document.getElementById('popup').style.display = 'block'; 
} 
e.onmouseout = function() { 
    document.getElementById('popup').style.display = 'none'; 
} 

Alternativamente, usted puede deshacerse de JavaScript por completo y hacerlo sólo con CSS:

CSS

#parent #popup { 
    display: none; 
} 

#parent:hover #popup { 
    display: block; 
} 
+3

.parent ==> #parent –

+1

también .popup ==> #popup –

+0

he encontrado la solución CSS no funciona a menos que el estilo = ' "display: none"' se retira de el 'div' –

2

Intentaré hacer esto con el sistema de controlador de eventos .hover() de jQuery, hace que sea fácil mostrar un div con la información sobre herramientas cuando el mouse está sobre el texto, y ocultarlo una vez que se ha ido.

Aquí hay un ejemplo simple.

HTML:

​<p id="testText">Some Text</p> 
<div id="tooltip">Tooltip Hint Text</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

CSS básica:

​#​tooltip { 
display:none; 
border:1px solid #F00; 
width:150px; 
}​ 

jQuery:

$("#testText").hover(
    function(e){ 
     $("#tooltip").show(); 
    }, 
    function(e){ 
     $("#tooltip").hide(); 
    });​​​​​​​​​​ 
7

Bueno, hice una secuencia de comandos simple de dos líneas para esto, es pequeña y hace lo que quiere.

Hay que ver http://jsfiddle.net/9RxLM/

Es una solución de jQuery: D

+0

Esta solución no es óptima si intento poner enlaces y cosas que el usuario necesita hacer clic ya que la ubicación del cuadro es independiente del elemento desencadenante. Esto ilustrará el problema (que también tengo) http: // jsfiddle.net/9RxLM/6078/ – MahNas92

+0

20 minutos más tarde con la herramienta jsfiddle pude encontrar una solución: agregar la propiedad "position: relative;" a parent (".tiptext") y establecer "left" -property para el niño (".decription") a cualquier valor, (por ejemplo, "0px"), como este: http://jsfiddle.net/9RxLM/6079/ – MahNas92

20

Aunque no necesariamente una solución JavaScript, hay también un atributo "title" variable global que puede ser útil.

<a href="https://stackoverflow.com/questions/3559467/description-box-on-mouseover" title="This is a mouseover title">Mouseover me</a> 

Mouseover me

+7

Si bien esto no responde la pregunta tal como se le preguntó, elimina la necesidad de javascript para resolver el problema que implica la pregunta. Muy agradable. +1 – destenson

+0

No pasó nada cuando hice un mouseover. Supongo que este método no es tan confiable como el de CSS. Pero también podría ser mi navegador. Usando Chrome 49.0.2623.112 m –

+1

@ Iancel0t funciona, tienes que esperar un segundo antes de que aparezca el título. –

Cuestiones relacionadas