Foros del Web » Programando para Internet » Javascript »

¿Efecto transition (CSS) en un script de onmouseover?

Estas en el tema de ¿Efecto transition (CSS) en un script de onmouseover? en el foro de Javascript en Foros del Web. Me gustaría que cuando el puntero se posara sobre este div: <div onmouseover="transition-bar-pp-over();" onmouseout="transition-bar-pp-out();" "> Este otro div apareciera, respondiéndo al script que se encuentra ...
  #1 (permalink)  
Antiguo 10/01/2014, 11:57
Christie
Invitado
 
Mensajes: n/a
Puntos:
Pregunta ¿Efecto transition (CSS) en un script de onmouseover?

Me gustaría que cuando el puntero se posara sobre este div:
<div onmouseover="transition-bar-pp-over();"
onmouseout="transition-bar-pp-out();"
">

Este otro div apareciera, respondiéndo al script que se encuentra más abajo y que supongo está errado ya que no me funciona.

<div id="bar-edit-pp" style="
width: 840px;
height: 40px;
display: none;
\">

<script type="text/javascript">
transition-bar-pp-over {
document.getElementById('bar-edit-pp').style.transition="visibility 2s";
document.getElementById('bar-edit-pp').style.visibility:hover="visible";
}
transition-bar-pp-out {
document.getElementById('bar-edit-pp').style.transition="visibility 2s";
document.getElementById('bar-edit-pp').style.visibility="none";
}
</script>
  #2 (permalink)  
Antiguo 10/01/2014, 23:39
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 16 años, 8 meses
Puntos: 4
Respuesta: ¿Efecto transition (CSS) en un script de onmouseover?

es mas facil si usas animate de css, busca un poco al respecto ya q así solo tendrías q cambiar la clase y ya
  #3 (permalink)  
Antiguo 11/01/2014, 06:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Efecto transition (CSS) en un script de onmouseover?

Como bien te recomiendan en la respuesta anterior, lo más práctico para estos casos, es realizar el efecto con CSS. Un ejemplo:

Código HTML:
Ver original
  1. <div id="div1">Hola</div>
  2. <div id="div2">Adiós</div>

Código CSS:
Ver original
  1. #div2{
  2.   transition: display .8s;
  3.   display: none;
  4. }
  5.  
  6. #div1:hover ~ #div2{
  7.   display: block;
  8. }

Con esto, ocultas a div2 desde el inicio y cada vez que poses el puntero del mouse sobre el div1, se mostrará el div2. La transición a aplicarse, se indica en las propiedades de div2.

Sin embargo, si insistes en hacerlo con JavaScript, esta sería una forma:

Código Javascript:
Ver original
  1. var div1 = document.getElementById("div1"),
  2.     div2 = document.getElementById("div2");
  3.  
  4. div1
  5.     .addEventListener("mouseover", function(){
  6.         div2.style.transition = ".8s";
  7.         div2.style.display = "block";
  8.     }, false)
  9.     .addEventListener("mouseout", function(){
  10.         div2.style.transition = ".8s";
  11.         div2.style.display = "none";
  12.     }, false);

Y utilizando los métodos fadeIn y fadeOut de jQuery:

Código Javascript:
Ver original
  1. $("#div1").hover(function(){
  2.     $("#div2").fadeIn(800);
  3. }, function(){
  4.     $("#div2").fadeOut(800);
  5. });

Si deseas hacer este tipo de efectos con JavaScript, te recomiendo utilizar los métodos de jQuery, pues así como los que muestro en el ejemplo, tiene otros muy buenos: http://api.jquery.com/category/effects/

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 11/01/2014, 06:46
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: ¿Efecto transition (CSS) en un script de onmouseover?

No se puede animar la propiedad display de CSS, si acaso abría que usar opacity.

Propiedades que se pueden animar con CSS: https://developer.mozilla.org/en-US/...ted_properties
  #5 (permalink)  
Antiguo 11/01/2014, 07:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: ¿Efecto transition (CSS) en un script de onmouseover?

Revisando la documentación que proporcionó pzin, acabo de comprobar que es tal como lo dice. No hay duda de que equivocándose -y leyendo el manual- se aprende.

Aplicando lo aprendido, con CSS:

Código CSS:
Ver original
  1. #div2{
  2.     opacity: 1;
  3.     transition: opacity .8s;
  4. }
  5.  
  6. #div1:hover ~ #div2{
  7.     opacity: 0;
  8. }

Con JavaScript:

Código Javascript:
Ver original
  1. var div1 = document.getElementById("div1"),
  2.     div2 = document.getElementById("div2");
  3.  
  4. div1.addEventListener("mouseover", function(){
  5.     div2.style.transition = ".8s";
  6.     div2.style.opacity = 1;
  7. }, false);
  8. div1.addEventListener("mouseout", function(){
  9.     div2.style.transition = ".8s";
  10.     div2.style.opacity = 0;
  11. }, false);

Con jQuery (librería de JavaScript), solamente basta que utilices los métodos de efectos que tiene, como los que mencioné en el comentario anterior.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: css, css3
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 22:34.