tengo el siguiente código:jQuery .animate() establece la visualización: ninguno, ¿cómo evitarlo?
HTML:
<div id="clickme">
Click me :-)
</div>
<div id="info" style="background:red; width:100%; height:100px; margin-bottom:-100px; z-index:20; position:absolute; bottom:0px;">
Stay, damn!
</div>
JavaScript:
$('#clickme').click(function() {
$('#info').animate({
marginBottom: 'toggle'
},{
duration:500
});
});
También está disponible en http://jsfiddle.net/DxnQJ/
Obviamente, quiero que el #info DIV
a aparecer/desaparecer cada vez Se hace clic en #clickme DIV
. Funciona según lo previsto, excepto que el #info DIV
desaparece después de la animación debido a que jQuery establece su propiedad CSS display
en none
.
¿Cómo puedo decirle a jQuery que deje de ocultar mi DIV
?
Observando la fuente jQuery, parece que 'alternar' fue diseñado para efectos que se muestran u ocultan por completo (como altura, ancho y opacidad). Lo que sucede es que al hacer clic en 'Hacer clic en mí :-)' y animar algo que no está oculto por primera vez tiene el mismo efecto que si tuvieras 'marginBottom: 'hide''. Entonces, cuando termina de animar, se llama a 'jQuery (elem) .hide(); 'en su elemento. – zkhr