[jQuery] Animate()-Problem

06/18/2012 22:41 PseudoPsycho#1
Hallo, Leute!
Ja, sogar ich brauche Hilfe. :D
Und zwar wollte ich einen Container auf Knofdrück aus-/einfahren lassen.
Sprich, etwas in der Art:
HTML Code:
$('#chatbox').animate({'height':'+=50'}, 400);
Die Höhe verringern klappt problemlos, vergrößern nicht.
Bei obigem Beispiel wird die Höhe zunächst verkleinert und erst dann vergrößert. Das sieht ein wenig so aus, als würde der untere Rand "hüpfen".
Allerdings ist dies nicht mehr der Fall, wenn ich die Style-Angaben padding & border für das Element entferne.

Davon betroffen ist diese Seite (#Link enfernt).
Ihr müsst euch jedoch einloggen, damit ihr die Chatbox zu sehen bekommt.
Dies könnt ihr mit diesen Daten tun:
#Test-Account gelöscht.
Schonmal danke im Vorraus! :)
06/18/2012 23:10 Mikesch01#2
Hi,

ich hoff ich kann dir mal helfen, bin eig. da nicht so talentiert ;D

Also hier ist deine aktuelle Funktion
Code:
function resizeChat(e){
$('#chatbox').animate({'height':e+'=50'}, 400);
$('#chat_content').animate({'height':e+'=50'}, 400); }
Wenn ich ein '+' eingebe, wird die
Chatbox zu height = height + 50 und
chat_content zu height = height + 50 (warum hier das Bild springt ist mir unklar, da er zwei mal in die selbe Richtung schiebt).

Bei Minus macht er einfach das gleiche nur umgekehrt.

Hier ist meine Logik:
Code:
function resizeChat(e){
$('#chatbox').animate({'height':e-'=50'}, 400);
$('#chat_content').animate({'height':e+'=100'}, 400); }
Chatbox wird bei '+' zu height = height - 50 (also schiebt nach oben) und
chat_content zu height = height + 100 (also schiebt wieder zum Ursprung und dann nach unten)

Bei '-' wird Chatbox zu height = height + 50 (schiebt nach unten) und
chat_content zu height = height - 100 (schiebt zum Ursprung und dann nach oben)

Hoffe ich konnte dir damit i-wie helfen ;)
06/18/2012 23:30 Fratyr#3
Einfach extrem umständlich wie du das anstellst wenn du einen Hüpf-Effekt erzielen willst solltest du dir einmal anschauen was easing ist, jQuery unterstützt das nämlich als dritten Parameter in der animate Funktion. Auserdem solltest du prüfen das die Höhe nicht unter einen gewissen Punkt fallen kann, sonst kommts mal vor das der User die Chatbox ausversehen komplett versteckt ohne das die Elemente die zur Vergrößerung dienen zugänglich sind.
06/18/2012 23:38 boxxiebabee#4
Quote:
Originally Posted by Fratyr View Post
Einfach extrem umständlich wie du das anstellst wenn du einen Hüpf-Effekt erzielen willst solltest du dir einmal anschauen was easing ist, jQuery unterstützt das nämlich als dritten Parameter in der animate Funktion. Auserdem solltest du prüfen das die Höhe nicht unter einen gewissen Punkt fallen kann, sonst kommts mal vor das der User die Chatbox ausversehen komplett versteckt ohne das die Elemente die zur Vergrößerung dienen zugänglich sind.
Den Hüpf-Effekt will er ja nicht ;)

Edit: So, habs mir mal kurz angeguckt.
Schneller fix:
Von der (id)Chatbox die höhe auf Auto stellen bzw. rausnehmen.

JQuery sieht dann so aus:
Code:
function resizeChat(e) {
    var a = $('#chat_content');
    if (a.height() >= 120 || e == '+') {
        a.animate({
            'height': e + '=50'
        }, 400);
    }
}
Vielleicht noch nen stop() reinhauen.
Code:
a.stop().animate({
     'height': e + '=50'
}, 400);
Getestet mit Firebug und funktioniert.
06/19/2012 14:10 PseudoPsycho#5
Quote:
Originally Posted by Fratyr View Post
Auserdem solltest du prüfen das die Höhe nicht unter einen gewissen Punkt fallen kann, sonst kommts mal vor das der User die Chatbox ausversehen komplett versteckt ohne das die Elemente die zur Vergrößerung dienen zugänglich sind.
hatte ich vor, einzubauen, sobald das Problem gelöst ist :P
Hat boxxie ja schon direkt mit eingebaut :D

Quote:
Originally Posted by boxxiebabee View Post
Den Hüpf-Effekt will er ja nicht ;)
Genau richtig. :D

Quote:
Getestet mit Firebug und funktioniert.
Ok, DANKE! Funktioniert bei mir auch.
Die Logik von jQuery ist mir in diesem Punkt etwas unverständlich, soll mir aber recht sein. Funktioniert ja jetzt. :)