2011-05-25 6 views
11

Tengo un enlace, al hacer clic en este Quiero un div a slideIn con facilitando y haciendo clic en el enlace de nuevo, se debe cerrar la div, con el alivio al ...div Alternar con el alivio al

I' he visto el plugin jQuery easing, pero no funciona con jQuery 1.5.1? ¿Alguna idea de lo que puedo hacer y cómo?

¿Ahora mismo solo tengo la función slideToggle, que no se relajó?

$('.open-mypage').click(function() { 
    $('#mypage-info').slideToggle('2000', function() { 
     // Animation complete. 
    }); 
}); 
+0

¿Por qué no utiliza el nuevo jquery. ¿No es como 1.8.9 o algo así? – Vadiklk

+0

Es 1.6.1 .... Pero estoy usando algo llamado Parallax también, que solo funciona con jQuery 1.5.1 y antes – nuffsaid

+0

Ahhh, no, ahora estoy usando 1.6.1 ... Pero aún no resuelve el problema anterior :) – nuffsaid

Respuesta

29

jQuery slideToggle() documentation dice:

.slideToggle ([duración], [facilitar], [callback]) (versión añadido: 1.4.3)


duración Una cadena o número que determina cuánto tiempo se ejecutará la animación.

easing Cadena que indica qué función de relajación utilizar para la transición.

devolución de llamada Una función para llamar una vez que se completa la animación.

Como se puede ver, hay un parámetro llamado [ easing ], su descripción es:

Aliviar

A partir de jQuery 1.4.3, una cadena opcional nombrar una función de aceleración puede ser usado. Las funciones de aceleración especifican la velocidad a la que progresa la animación en diferentes puntos dentro de la animación. Las únicas implementaciones de aceleración en la biblioteca jQuery son las predeterminadas, llamadas swing, y las que progresan a un ritmo constante, llamadas linear. Hay más funciones de aceleración disponibles con el uso de complementos, especialmente el jQuery UI suite.

Así que tienes 2 opciones:

1) Se utiliza uno de la disposición aliviando:

$('.open-mypage').click(function() { 
    $('#mypage-info').slideToggle('2000', "swing/linear", function() { 
     // Animation complete. 
    }); 
}); 

2) Se incluyen jQuery UI en su página y el uso one of its 32 easings:

$('.open-mypage').click(function() { 
    $('#mypage-info').slideToggle('2000', "easeOutBounce", function() { 
     // Animation complete. 
    }); 
}); 

You can see a jsFiddle example here

+0

Parece que funciona :) Muchas gracias :) – nuffsaid

+2

Si no usa las otras partes de jQuery UI, puede hacer una compilación personalizada en http://jqueryui.com/download seleccionando solo el 'Núcleo de efectos'. – DarthJDG

0

Tengo un enlace. Aquí hay un ejemplo de diferentes tipos de efectos de alternar.

Toggle div with different Effects - Jquery Live demo

Seleccione el tipo de efecto en el menú desplegable y cuando clic, esto hace un efecto de palanca que se parece mucho mejor.

Lo he intentado, funciona bien.

$(function() { 
    var index = 0; 
    $("#btnChangeEffect").click(function() { 
     var effectType = $("#effectTypes").val(); 
     $("#dvContent").toggle(effectType, 600); 
    }); 
}); 



<select name="effects" id="effectTypes" class="ddl"> 
    <option value="blind">Blind</option> 
    <option value="bounce">Bounce</option> 
    <option value="clip">Clip</option> 
    <option value="drop">Drop</option> 
    <option value="explode">Explode</option> 
    <option value="fold">Fold</option> 
    <option value="highlight">Highlight</option> 
    <option value="puff">Puff</option> 
    <option value="pulsate">Pulsate</option> 
    <option value="scale">Scale</option> 
    <option value="shake">Shake</option> 
    <option value="size">Size</option> 
    <option value="slide">Slide</option> 
</select> 
Cuestiones relacionadas