Jquery slideToggle-Effekt nicht glatt

8
%Vor%

Ich versuche, $("div.searchDiv").slideToggle("slow"); auf div mit der Klasse searchDiv aufzurufen, die anfangs mit display:none ausgeblendet ist. Es gibt wieder einige div-Elemente innerhalb dieser 4 Divs mit der Klasse row . Ist es wichtig, wie die Elemente in der Hauptdiv searchDiv platziert werden, da ich sehe, dass der Toggle-Effekt nicht glatt für die Elemente innerhalb der Hauptdiv. Ist.

    
user2585299 04.04.2014, 19:45
quelle

4 Antworten

7

Die Idee, ob etwas glatt aussieht oder nicht, ist eine Meinung und unterscheidet sich je nachdem, wer es betrachtet. Wenn Sie langsam verwenden, ist es ein Wert von 200 Millisekunden.

SlideToggle. Ссылка

Die Dauer wird in Millisekunden angegeben. höhere Werte zeigen langsamere Animationen an, nicht schnellere. Die Zeichenfolgen 'schnell' und 'langsam' können angegeben werden, um die Dauer von 200 bzw. 600 Millisekunden anzuzeigen.

Die Standard-Lockerung ist Swing und für mich sieht es grob aus. Ich würde vorschlagen, linear für die Lockerung zu versuchen.

Wenn der Swing oder Linear für Sie nicht reibungslos genug ist, können Sie jQuery UI verwenden und einbinden und eine der anderen Optionen verwenden. Sie können die Beschleunigung, die Ihrer Meinung nach funktioniert, so flüssig wie nötig finden.
Ссылка

%Vor%     
donlaur 04.04.2014 20:01
quelle
3

Sie müssen Breite zu Ihren Zeilen hinzufügen.

jQuery kennt die Dimensionen Ihres versteckten div nicht, bis es angezeigt wird. Wenn es angeklickt wird, zieht es es aus der Position heraus, um es zu messen, bevor es es schnell ersetzt. Dies hat oft den Nebeneffekt, dass es zu etwas Sprunghaftigkeit kommt. Wenn Sie die Breite des Elements festlegen, wird verhindert, dass jQuery es aus der Position zieht.

    
Tomer Almog 11.06.2014 20:11
quelle
2

Ich weiß, dass das alt ist, aber für den Fall, dass es jemand anderem hilft, habe ich ein Problem gefunden, als ich eine Eigenschaft mit minimaler Höhe auf das getoggte Element einstellte, die auf eine feste Höhe für mich eingestellt wurde.

    
TJ15 01.10.2014 12:15
quelle
2

Ich hatte ein ähnliches Problem. Zwei Dinge haben es für mich behoben.

  1. Ich musste bestehende Übergang css auf meinem Element entfernen.
  2. Ich hatte ein Element in meiner "Klickleiste" (h2), das den Rand auf 0 gesetzt hat (es animierte andere Elemente zur falschen Grenze zu animieren - was am Ende zu einem seltsamen Knacken führte)
Ivan Work 29.09.2016 03:31
quelle

Tags und Links