Basic jQuery slideUp und slideDown driving me mad!
meine jQuery-Kenntnisse sind ziemlich gut normalerweise, aber das treibt mich
verrückt!
Es ist ein ziemlich einfaches Ziehharmonika habe ich von Grund auf neu codiert. Mit
jQuery 1.3.2, so sollte es keine jumping bugs, aber im Grunde, wenn
nehmen Sie einen Blick auf das Beispiel:
http://www.mizudesign.com/jquery/accordian/basic.html
Ich bin die Anzeige der Höhe für das Ziel-div auf der rechten Seite - wenn es
enthält text, der es denkt, es ist kürzer als es ist und springen.
Wenn es ein Bild gibt ' s kein problem.
Ich nicht herausfinden können, wohin ich gehe falsch - es ist natürlich in der CSS
irgendwo, aber ich habe versucht, all die üblichen verdächtigen wie display:block
Irgendwelche Ideen wäre dankbar angenommen!
Yours,
Chris
PS Bitte verzeihen Sie die Art der source-code habe ich Riss es heraus
das ganze Projekt an dem ich arbeite, so schließt es einige divs, die
nicht wirklich brauchen, da zu sein.
InformationsquelleAutor Mizu | 2009-07-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie eine Breite oder Höhe auf die Inhalte, für die es zum nahtlosen animieren.
Ich muss zugeben, ich glaube ich habe eine bessere Lösung gefunden, da zu spielen, um mit es - wie unten dokumentiert! 🙂
es noch basiclly fügt die Höhe des Elements!
Außer es speichert die Höhe in der DOM-Referenz, an jedem beliebigen Punkt in der Zeit. Ich schaute durch die Verwendung von jQuery .Daten speichern die info, aber das schien weit effizienter 🙂
Link timed out-für mich ist die Antwort nur begrenzt von nutzen. "Links zu externen Ressourcen sind erwünscht, aber bitte fügen Sie Rahmen um den link, damit Ihre Kolleginnen und Nutzer haben eine Vorstellung davon, was es ist und warum es da ist. Immer zitieren die meisten relevanten Teil eine wichtige Verbindung, im Falle der Ziel-Website nicht erreichbar ist oder geht endgültig offline."
InformationsquelleAutor redsquare
Ich muss zugeben, dass ich gefunden habe, meine eigene dynamische Lösung jetzt.
http://www.mizudesign.com/jquery/accordian/basic.html behoben werden sollten.
Es ist ganz einfach - fügt nur die Höhe mit .css vor dem Versteck der div.
Arbeitet ein Genuss 🙂
InformationsquelleAutor Mizu
Ich denke, das problem ist, dass, wenn ein padding oder margin Hinzugefügt wird, dann springt er, dies war der Fall bei mir. Sie animieren die Marge in der callback -
Auch "keep in mind", die Tabellen Verhalten sich buggy mit slideUp slideDown und eher fadeIn fadeOut
InformationsquelleAutor adardesign
Höhe, sobald das div hat, beendet seine animation von der Rückruf. Es ist möglich, dass Sie immer die Höhe, während das div-Element animiert wird, und Sie bekommen eine übergangs-Wert.
Wenn Ihre animation ist nervös, versuchen Sie, mit der Rückrufe. Öffnen Sie nicht ein div ein und ausblenden, div bei der gleichen Zeit. Stattdessen verstecken Sie Ihre ersten div, und innerhalb der callback-zeigen Sie Ihren nächsten div.
Aktualisiert (Aus den Kommentaren):
Was meinst du mit springen?
Können Sie nicht sehen, die Auswirkungen auf den demo-link? Wenn Sie auf den ersten beiden Karteireitern der Inhalt springt unten statt schieben den ganzen Weg hinunter. Es ist nicht animieren reibungslos wie sieht es mit der Dritten Registerkarte. Nach dem panel auf der rechten Seite der Seite ist es nicht ziehen Sie heraus, die richtige Höhe zu animieren. Es scheint zu funktionieren nur es einmal aus, es ist animiert, es einmal.
Versuchen Verkettung von Animationen zusammen, die durch Ihre Rückrufe.
Ich muss zugeben, dass ich gefunden habe, meine eigene dynamische Lösung jetzt. mizudesign.com/jquery/accordian/basic.html, die behoben werden sollte. Es ist ganz einfach - fügt nur die Höhe mit .css vor dem Versteck der div. Arbeitet ein Genuss 🙂
InformationsquelleAutor Sampson
Hatte ich auch ein nerviges
slideUp()
springen Problem, das auf Safari, aber nicht mit chrome oder IE. Es stellte sich heraus, dass der div-tag war ich versteckt/zeigt, war rechts unten ein weiteres div-tag enthaltenfloat:left
divs. Während des Gleitens, die floatenden divs wäre momentan neu gerendert, wodurch das springen.Das Update wurde einfach hinzufügen
clear:both
im Stil der aus - /einblenden div.InformationsquelleAutor beaves
Mein problem ist, dass ich da eine responsive design ich weiß nicht, was die Breite oder die Höhe meinem element sein wird. Nach der Lektüre dieses blog-post http://www.bennadel.com/blog/2263-Use-jQuery-s-SlideDown-With-Fixed-Width-Elements-To-Prevent-Jumping.htm erkannte ich, dass jQuery wurde die änderung der position von meinem element zu festen und messing mit dem layout des Elements. Ich habe Folgendes in meine CSS-Datei für das element und nicht bemerken, die schlechte Nebenwirkungen im IE7+, firefox, chrome und safari.
InformationsquelleAutor Blake Plumb
Ersetzen margin-top und margin-bottom Werte mit padding-top und padding-bottom Werte hat den trick für mich. Vergessen Sie nicht, um die margin-Wert auf 0 nach.
InformationsquelleAutor 3rik82
Dieser arbeitete für mich:
InformationsquelleAutor Smirnoff
Das Problem wird durch IE (quirks-Modus) Rendern "height:0px".
Fix: Animieren Sie die Höhe auf 1 (nicht 0), dann ausblenden und zurücksetzen Höhe:
InformationsquelleAutor sciroccohsd
Für mich war das problem die margin (oder padding) auf dem div ein - /ausblenden mit Folie, aber ich musste zu geben, margin (oder padding), div. Ich löste mit diesem trick:
InformationsquelleAutor Fred K