Gibt es eine Alternative zu fadeOut (), die keine Anzeige verwendet: keine für den Stil? Ich möchte nur die versteckte Sichtbarkeit verwenden, um Verschiebungen im Seitenlayout zu vermeiden.
Gibt es eine Alternative zu fadeOut (), die keine Anzeige verwendet: keine für den Stil? Ich möchte nur die versteckte Sichtbarkeit verwenden, um Verschiebungen im Seitenlayout zu vermeiden.
Antworten:
Sie können mit .animate()auf dem opacitydirekt:
$(".selector").animate({ opacity: 0 })
Auf diese Weise nimmt das Element immer noch Platz ein, wie Sie es möchten. Es hat nur eine 0Deckkraft, sodass es praktisch genauso ist wie am visibility: hiddenEnde.
Ja, es gibt eine Alternative. Es wird aufgerufen.fadeTo() , wo Sie die Zielopazität festlegen, die in Ihrem Fall sein wird 0.
$('element').fadeTo( 1000, 0 ); // fade to "0" with a 1000ms duration
Dies wird die displayEigenschaft am Ende nicht ändern .
Benutzerdefinierte Animation ist eine Alternative http://api.jquery.com/animate/
.animate({opacity: 0.0}, 5000, 'linear', callback);
Eine Möglichkeit, dies zu tun, besteht darin, den Anzeigemodus und dann .fadeOut zu erfassen und im Endeffekt Ihre bevorzugte Methode zum Ausblenden auszuführen und die Anzeige auf den ursprünglichen Wert zurückzusetzen:
var $element = $('#selector');
var display = $element.css('display');
$element.fadeOut(500, function() {
$element.css('visibility', 'hidden');
$element.css('display', display);
}
Wenn Sie ausblenden möchten, ändern Sie dann den Inhalt und dann wieder einblenden :
$("#layer").animate({opacity: 0}, 1000, 'linear', function(){
//Do here any changes to the content (text, colors, etc.)
$("#layer").css('background-color','red'); //For example
$("#layer").animate({opacity: 1}); //FadeIn again
});
Beachten Sie, dass
fadeTo(500, 0) // fade out over half a second
fadeTo(0, 0) // instantly hide
ist (seltsamerweise) nicht kompatibel mit
fadeIn()
(wenn Sie es wieder zeigen möchten). Also, wenn Sie verwenden
fadeTo(500, 0)
Um etwas ohne CSS zu verstecken, display: nonemüssen Sie verwenden
fadeTo(500, 1)
um es wieder opacity: 0einzublenden oder es bleibt noch im CSS übrig und bleibt unsichtbar.
visibility: hidden;Rückruffunktion für die Fertigstellung oder ähnliches festlegen .