Comunidad de diseño web y desarrollo en internet online

[Ayuda] Aparecer box al hacer hover en algun link u objeto

Citar            
MensajeEscrito el 31 Mar 2013 11:54 pm
Hola a todos

Tengo un foro MyBB, pero he visto en los foros IPB un efecto que al pasar el mouse sobre el nick de un usuario aparece un cuadro o box con los datos del usuario.

Imagen de la caja de post:


Al pasar el mouse sobre el nick de usuario (Aparecerá el cuadro):


Dentro de la caja, puede se hacer clic en "Buscar contenido" y "PM este miembro 'y otras opciones.

¿Cómo se llama ese tipo de efecto?

Yo intente con CSS3: profilelink:hover +. userdatabox {...} De esta manera logre que al pasar el mouse sobre el nick apareciera un box, pero este desaparecía al dejar de hacer hover en el nick para poder clickear alguna de las opciones del box que aparecia

Por favor, me podrían ayudar hacerlo, talvés se podría en javaScript o cualquier otra cosa. He intentado con unos lightbox de imagenes pero en vez de imagenes he puesto contenido pero solo aparece si se hace clic en el link, mas no haciendo hover.

Usted puede probar el efecto que usan los foros IPB haciendo clic
NOTA: Una vez hecho un hover en el nick de algun usuario aparece el box, y se mantiene activo solo si el mouse esta dentro de ese box, y desaparece si el mouse esta fuera del box.
http://www.skinbox.net/community/topic/4918-meet-my-community/page__pid__20189#entry20189 :

Y pues el lightbox que podria ser una alternativa para conseguir el efecto encontre esto:
http://www.1stwebmagazine.com/create-css-popup-with-lightbox-effect
que en vez de imagen se le podria agregar contenido, pero hay que hacer clic para que aparezca y lo que necesito es que aparezca pero haciendo hover y que se matnenga activo si el mouse esta dentro del box.

Por Xpress

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 01 Abr 2013 04:33 pm
debes usar mouseover sobre el link y mouseout sobre el div que aparece

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

chrome
Citar            
MensajeEscrito el 02 Abr 2013 02:18 am
Me ayudarias a generar un codigo simple?

Por Xpress

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Abr 2013 08:49 pm
veamos, tienes dos divs:

Código HTML :

<div id="foo">foo</div>
<div id="hiddenFoo">Hola soy foo</div>

...le agregamos algo de estilo

Código CSS :

#foo{background: #999; padding: 10px; width: 100px;}
#hiddenFoo{background: #FC0; padding: 20px; height: 300px; width: 200px;}

ahora con jquery, primero "escondemos" el div "flotante", luego declaras la funcion mouseover en #foo para mostrar #hiddenFoo, luego sobre este ultimo un mouseout para ocultarlo:

Código Javascript :

$(document).ready(function()
{
   $('#hiddenFoo').hide();
   //
   $('#foo').mouseover(function()
   {
      $('#hiddenFoo').fadeIn(300);
   });
   $('#hiddenFoo').mouseout(function()
   {
      $(this).fadeOut(300);
   }); 
});


Aqui puedes ver el código funcionando
;)

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

chrome
Citar            
MensajeEscrito el 05 Abr 2013 02:21 pm
Gracias penHolder, funciona de maravilla. Solo tengo una duda
porque cuando agrego otros divs en el segundo no funciona el efecto.
Asi
http://jsfiddle.net/6bvwG/2/

Por Xpress

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Abr 2013 05:30 pm
No funciona por que la funcion aplica al ID #HiddenFoo, por norma no debe haber más de un elemento con el mismo ID.

hagamos unos pequeños cambios:

Código HTML :

<div class="foo">foo</div>
<div class="hiddenFoo">Hola soy foo</div>


cambiamos los estilos de ejemplo:

Código CSS :

.foo{background: #999; padding: 10px; width: 100px;}
.hiddenFoo{background: #FC0; padding: 20px; height: 50px; width: 200px; float:left;
position:absolute; border: 1px solid red;}


y cambiamos el script:

Código Javascript :

$(document).ready(function()
{
   $('.hiddenFoo').hide();
   //
   $('.foo').mouseover(function()
   {
      $(this).next($('.hiddenFoo')).fadeIn(300);
   });
   $('.foo').mouseout(function()
   {
      $(this).next($('.hiddenFoo')).fadeOut(300);
   });
    
});


y ya está ;)

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox
Citar            
MensajeEscrito el 05 Abr 2013 09:00 pm

Por Xpress

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Abr 2013 09:00 am
Cambia el objeto del mouseout y quitale la funcion next()

Código Javascript :

$(document).ready(function()
{
   $('.hiddenFoo').hide();
   //
   $('.foo').mouseover(function()
   {
      $(this).next($('.hiddenFoo')).fadeIn(300);
   });
   $('.hiddenFoo').mouseout(function()
   {
      $(this).fadeOut(300);
   });
    
});

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

chrome
Citar            
MensajeEscrito el 07 Abr 2013 11:32 pm
Muchas gracias, ahora si funciona tal y como lo deseaba

Tengo una duda,
Cual es la diferencia entre
Mouseover/Mouseout con Mouseenter/Mouseleaver

He leído en algunos foros donde recomiendan usar el segundo y pues el resultado viene a ser lo mismo, pero como veo que tu sabes de esto, quisiera que me dieras una opinión.

Por Xpress

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Abr 2013 04:39 pm

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.