Foros del Web » Programando para Internet » Javascript »

Al hacer onmouseover el elemento parpadea

Estas en el tema de Al hacer onmouseover el elemento parpadea en el foro de Javascript en Foros del Web. Bueno la duda no se si es más de css o de javascript pero lo pondré aquí.Tengo este codigo de jquery: $("img#principal").mouseover(function(event){ $("a#linkCambiarPrincipal").css("display","inline" ); }); ...
  #1 (permalink)  
Antiguo 13/11/2009, 16:03
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Al hacer onmouseover el elemento parpadea

Bueno la duda no se si es más de css o de javascript pero lo pondré aquí.Tengo este codigo de jquery:

$("img#principal").mouseover(function(event){
$("a#linkCambiarPrincipal").css("display","inline" );
});

$("img#principal").mouseout(function(event){
$("a#linkCambiarPrincipal").css("display","none" );
});

Lo que hace esto es mostrar el enlace a#linkCambiarPrincipal cuando estoy sobre la imagen img#principal y ocultarlo cuando salgo de esa imagen.El problema es que cuando me pongo sobre el enlace (que está posicionado sobre la propia imagen) este empieza a parpadear.

Lo que entiendo que pasa es que parpadea pq no estoy exactamente encima de la imagen sino que estoy sobre el enlace que está posicionado sobre la imagen.

¿Como se soluciona esto?¿Suele hacerse de otra manera?

Muchas gracias
  #2 (permalink)  
Antiguo 13/11/2009, 19:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Todo depende de dónde está el enlace que se muestra/oculta. Ya que si se muestra encima de la imagen, parpadeará debido a que provocará el evento onmouseout de la imagen.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 14/11/2009, 09:31
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

Eso es exactamente lo que pasa.¿Como se soluciona?
  #4 (permalink)  
Antiguo 14/11/2009, 09:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Prueba usando el evento onmouseout del enlace en lugar del de la imagen.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 14/11/2009, 11:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

Pero eso lo que haría es que al entrar en la imagen apareciera el enlace y al salir de la imagen el enlace siguiera mostrandose.Por lo tanto habría que pasar al menos una vez sobre el enlace para que desapareciera.
  #6 (permalink)  
Antiguo 14/11/2009, 11:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Muestra cómo tienes los elementos en cuestión, de lo contrario será difícil ayudarte.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 14/11/2009, 16:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

David gracias por tus respuestas pero no sé que más explicar.Ya lo he dicho antes:

Tengo un enlace y una imagen,mediante position: relative, top y left he posicionado el enlace sobre la imagen.

Lo que quiero es que cuando el cursor entre en la imagen se muestre el enlace y cuando salga de la imagen desaparezca el enlace.

Y lo que ocurre es que cuando entro en la imagen se muestra el enlace pero cuando me pongo sobre el, éste se pone a parpadear pq se está disparando el evento onmouseout.

¿Hay manera de evitar esto o hacerlo de otro modo?
  #8 (permalink)  
Antiguo 14/11/2009, 18:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Lo que podrías hacer es situar ambos elementos dentro de un mismo contenedor y usar los eventos onmouseout y onmouseover del contenedor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 15/11/2009, 09:30
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

Nada, ya probé y estamos en lo mismo.En cuanto me pongo sobre el enlace empieza a parpadear porque deben de estar disparandose los eventos onmouseover y onmouseout continuamente...

No sé, me da que no encontramos la solución...
  #10 (permalink)  
Antiguo 15/11/2009, 17:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Muestra cómo has intentado, cuanto más detalles proporciones será más fácil ayudarte a encontrar la solución.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 16/11/2009, 15:03
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

Hola de nuevo David(eres el único que me ayuda) tengo algo en este plan:

<style type = "text/css">
a#linkCambiarPrincipal
{
position: relative;
top: 20px;
left: 20px;
display: none;
background: #fff;
cursor: pointer;
}
</style>

<script type = "text/javascript">
$("img#principal").mouseover(function(event){
$("a#linkCambiarPrincipal").css("display","inline" );
});
//Y lo ocultamos al quitarnos de la imagen
$("img#principal").mouseout(function(event){
$("a#linkCambiarPrincipal").css("display","none" );
});
</script>


<a id = "linkCambiarPrincipal" href = "#"> Enlace oculto </a><br/>
<img id = "principal" src = "laquesea" />
  #12 (permalink)  
Antiguo 16/11/2009, 17:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Al hacer onmouseover el elemento parpadea

Es que, debes agregar el contenedor (un <div> o <span>), y asignarle los eventos onmouseout y onmouseover (comprobando que el target/srcElement del evento onmouseout no sea el enlace)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 17/11/2009, 13:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Al hacer onmouseover el elemento parpadea

Muchas gracias, lo puse así y ya funciona:

$("div#marcoPrincipal").mouseover(function(event ){

if (this.id != "linkCambiarPrincipal" )
$("a#linkCambiarPrincipal").css("display","inline" );
});
//Y lo ocultamos al quitarnos de la imagen
$("div#marcoPrincipal").mouseout(function(event) {

if (this.id != "linkCambiarPrincipal" )
$("a#linkCambiarPrincipal").css("display","none" );
});

Perdona por las molestias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.