Foros del Web » Programando para Internet » Jquery »

Problemas con una función HOVER

Estas en el tema de Problemas con una función HOVER en el foro de Jquery en Foros del Web. Hola amigos. Tengo un problema con el siguiente código. Vereis, la página tiene varios div, con diferentes fotos. Mi intención es que cuando el usuario ...
  #1 (permalink)  
Antiguo 24/07/2013, 12:29
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 3 meses
Puntos: 0
Pregunta Problemas con una función HOVER

Hola amigos.

Tengo un problema con el siguiente código.

Vereis, la página tiene varios div, con diferentes fotos. Mi intención es que cuando el usuario pase el ratón por una foto, aparezca el título de la foto (div que estaría como oculto). He encontrado la siguiente función en internet, el problema es que lo aplica a todos los divs, y a mi me gustaría que solo fuese al de la foto. Cómo puedo solucionarlo? .

<script type="text/javascript">
$(document).ready(function(){
$("ul a li .song").hover(function() {
$("ul a li .photo .info").fadeIn('slow');
},
function() {
$("ul a li .photo .info").fadeOut('slow');
});
});
</script>


Un saludo y muchas gracias
  #2 (permalink)  
Antiguo 24/07/2013, 15:19
Avatar de neglivv  
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 11
Respuesta: Problemas con una función HOVER

Como esta estructurado tu HTML? puedes colocar el código?
  #3 (permalink)  
Antiguo 25/07/2013, 11:16
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problemas con una función HOVER

Hola! Gracias por tu respuesta. Te pego el código:

<ul>

<a title="" href=""><li>
<div class="song">
<div class="info">
<h1><?php the_title(); ?></h1>
<h2>Published on <?php echo date('F j, Y'); ?></h2>
</div>
<div class="imagen"><img src="" /></div>
</div>
</li></a>

<a title="" href=""><li>
<div class="song">
<div class="info">
<h1><?php the_title(); ?></h1>
<h2>Published on <?php echo date('F j, Y'); ?></h2>
</div>
<div class="imagen"><img src="" /></div>
</div>
</li></a>

<a title="" href=""><li>
<div class="song">
<div class="info">
<h1><?php the_title(); ?></h1>
<h2>Published on <?php echo date('F j, Y'); ?></h2>
</div>
<div class="imagen"><img src="" /></div>
</div>
</li></a>

</ul>
  #4 (permalink)  
Antiguo 26/07/2013, 09:45
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problemas con una función HOVER

Hola designermaster, intenta colocandole un ID al DIV donde carga la imagen y con jquery haces el proceso del HOVER haciendo referencia a ese DIV

Prueba y me comentas
  #5 (permalink)  
Antiguo 26/07/2013, 15:48
 
Fecha de Ingreso: septiembre-2008
Ubicación: España
Mensajes: 230
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problemas con una función HOVER

pero lo tendría que poner un id diferente a cada código, y luego triplicar el script para cada uno? O cómo dices que se haría?? Gracias por tu respuesta ;)
  #6 (permalink)  
Antiguo 27/07/2013, 06:26
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 11 meses
Puntos: 2
Respuesta: Problemas con una función HOVER

La tabla y las imagenes se muestran dinamicamente o es estatico?

Si la tabla se genera dinamicamente de una Base de Datos, lo que debes hacer es meter el codigo javascript que tienes en una funcion y en tu codigo HTML hacer el llamado:


Código Javascript:
Ver original
  1. function prueba(id){
  2.      $("ul a li .song").hover(function() {
  3.          $("ul a li .photo .info"+id).fadeIn('slow');
  4.      },
  5.      function() {
  6.         $("ul a li .photo .info"+id).fadeOut('slow');
  7.      });
  8.  
  9. }

Código HTML:
Ver original
  1. <div class="imagen<?=$id_imagen>?" onmouseover="prueba("<?=$id_imagen?>")"><img src="" /></div>

Código PHP:
Ver original
  1. $id_imagen
es la variable que identifica la imagen, esto lo hago para que el ID que le coloques al DIV de la imagen no sea siempre el mismo
Este es el caso de que la tabla se te cargue dimamicamente

Si todo se carga Estaticamente, debes hacerlo como tu dijiste, crear varios ID y varias funciones Javascript
  #7 (permalink)  
Antiguo 15/08/2013, 20:55
Avatar de neglivv  
Fecha de Ingreso: julio-2011
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 11
Sonrisa Respuesta: Problemas con una función HOVER

Hola designermaster, encontraste la respuesta a tu problema? Yo contesto algo tarde (que mala costumbre la mía) ... diseñé una solución y aquí la coloco por si a alguien le parece útil:

Código HTML:
...
<html>
<head>
<script src="jquery-1.7.2.min.js"></script> <!--se puede usar una version mas actualizada-->
<script type="text/javascript">
	$(document).ready(function(){
		$("ul li .imagen").hover(function() {
		idImg = $(this).attr("id");
		$("ul li .info."+idImg).show('slow');
		},
		function() {
		idImg = $(this).attr("id");
		$("ul li .info."+idImg).hide('slow');
		});
	});
</script>

<style>
	.info {display:none;}
	img:hover{cursor:pointer;}
	ul {list-style:none;}
	
</style>
</head>

<body>
<ul>
	<li>
	<div class="imagen" id="1" ><a><img src="blusas-de-primavera-verano-4.jpg" /></a></div>
	<div class="info 1">
		<h1><?php the_title(); ?></h1>
		<h2>Published on <?php echo date('F j, Y'); ?></h2>
	</div> 
	</li>
	
	<li>
	<div class="imagen" id="2"><img src="blusas-de-primavera-verano-4.jpg" /></div>
	<div class="info 2">
	<h1><?php the_title(); ?></h1>
	<h2>Published on <?php echo date('F j, Y'); ?></h2>
	</div> 
	</li>

	<li>
	<div class="imagen" id="3"><img src="blusas-de-primavera-verano-4.jpg" /></div>
	<div class="info 3">
	<h1><?php the_title(); ?></h1>
	<h2>Published on <?php echo date('F j, Y'); ?></h2>
	</div> 
	</li>
</ul>
</body>
</html> 
Lo que hay que tomar en cuenta es: Colocar un id a cada div class="imagen" que corresponda con la 2da clase del div class="info". En este caso si el div class="imagen" tiene como id="1", entonces le coloco a div class="info 1"

Bueno... es una solución algo sencilla y se puede mejorar.

Etiquetas: hover, javascript
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 12:36.