könnten Sie neue Inhalte laden mit display: none
und slideDown()
drin und dann mit animierten Opazität FadeIn.Bevor Sie es entfernen verblassen Sie gerade aus und slideUp()
ich denke, das ist das, was man wollte: jsFiddle
$(function() {
$("#foo").click(function() {
if($("#bar").is(":visible")) {
$("#bar").animate({"opacity": 0}, function() {
$(this).slideUp();
});
}
else {
$("#bar").css({
"display": "none",
"opacity": 0,
/* The next two rows are just to get differing content */
"height": 200 * Math.random() + 50,
"background": "rgb(" + Math.round(255 * Math.random()) + "," + Math.round(255 * Math.random()) + "," + Math.round(255 * Math.random()) + ")"
});
$("#bar").slideDown(function() {
$(this).animate({"opacity": 1});
});
}
});
});
dies auch versuchen: jsFiddle. Klicken Sie auf "Click me", um neue divs hinzuzufügen. Klicke auf ein neues Div, um es zu entfernen.
$(function() {
$("#foo").click(function() {
var newCont = $("<div>").css({
"display": "none",
"opacity": 0,
"height": 200 * Math.random(),
"background": "rgb(" + Math.round(255 * Math.random()) + "," + Math.round(255 * Math.random()) + "," + Math.round(255 * Math.random()) + ")"
});
$(this).append(newCont);
newCont.slideDown(function() {
$(this).animate({"opacity": 1});
});
newCont.click(function(e) {
$(this).animate({"opacity": 0}, function() {
$(this).slideUp(function() {
$(this).remove();
});
});
return false;
});
});
});
Haben die möglichen untergeordneten Elemente Ihres Eltern-DIV bekannte Höhen oder ist ihre Höhe durch ihren Inhalt angegeben? Und ist immer nur ein Kind oder mehrere sichtbar? – Netsurfer
Die möglichen Kindelemente haben keine bekannten Höhen. Die Höhe ist in der Tat durch ihren Inhalt gegeben. Und ja, es ist immer mindestens ein Kind sichtbar. –
OK, also müssen Sie die Höhe des entsprechenden Kindes bestimmen ** bevor ** Sie die Höhe des Elternteils ändern können. Wie wäre es mit einem alternativen Ansatz: Stellen Sie die Elternhöhe auf Null und übertritt die Höhe mit dem Kind bereits sichtbar? Wäre viel einfacher und imho der "nettere" Effekt. – Netsurfer