2013-05-20 7 views
11

Ich versuche, ein 100% Höhe Akkordeon mit dem Twitter Bootstrap Kollaps-Komponente zu implementieren, genau wie in diesem question beschrieben.Twitter Bootstrap 100% Höhe Akkordeon "springen"

Ich manuell die Höhen der .accordion-inner Elemente wie in dieser answer beschrieben.

Allerdings habe ich erlebt "bouncy" Verhalten beim Erweitern/Zusammenklappen der Panels. Ich habe alle Polsterung/Rand/Rand von den .accordion-inner Elementen entfernt, um diese Möglichkeit zu beseitigen.

Es ist am deutlichsten in IE10, aber das Problem ist auch in Chrome offensichtlich.

Siehe hierzu example.

Irgendwelche Ideen, was dieses "jumpy" Verhalten verursacht?

+0

Es funktioniert gut mit Chrom – Xavier

+0

Ich habe in Chrom eingecheckt und die "Bounce" auf der Unterseite existiert noch. –

+0

Ja, du hast Recht, habe es nicht bemerkt .. Aber schlechte Nachrichten gibt es auch ein "Bounce" in der Boostrap-Dokumentation: schau es dir an http://twitter.github.io/bootstrap/javascript.html # collapse – Xavier

Antwort

10

spät zur Party, aber:

Ich hatte ein ähnliches Problem, und bemerkte, dass, wenn ich ein Rand oben aus dem Element unter dem kollabierenden entfernt und ersetzt durch padding-top, der Übergang glatt war.

So - überprüfen Sie die Ränder benachbarter Elemente und versuchen Sie, sie wenn möglich durch Auffüllen zu ersetzen.

+0

Für mich war es ähnlich, aber es war der Rand um das .collapse div. Ich hatte ein Div mit zwei Klassen: '.content' und' .collapse'. '.content' hatte Margen. Ich habe die zwei Klassen in zwei getrennte divs getrennt, wobei '.collapse'' 'content' 'eingepackt hat – MeltingDog

4

Ich denke, der "Sprung", den Sie sehen, liegt an den CSS-Übergängen für die .collapse-Klasse.

Wenn Sie sich diesen SO-Thread Turning off Twitter Bootstrap Navbar Transition animation ansehen, können Sie sehen, wie Sie den Übergang mit einer überschreibenden CSS-Klasse 'no-transition' deaktivieren können. Dies verhindert nicht die Animation alle zusammen, aber es beschleunigt sie so, dass der Sprung weniger auffällig ist ...

hinzufügen no-transition zu Ihrem Akkordeon-Körperelemente ..

<div id="collapseOne" class="accordion-body collapse in no-transition"> 

die CSS hinzufügen. .

.no-transition { 
    -webkit-transition: height 0.001s; 
    -moz-transition: height 0.001s; 
    -ms-transition: height 0.001s; 
    -o-transition: height 0.001s; 
    transition: height 0.001s; 
} 

Aktualisiert Plunker .. http://plnkr.co/edit/xnvDGcDd21iCu69wKSub?p=preview

+0

Danke, aber im Idealfall möchte ich die Animation behalten (die ich nicht mehr sehe). Sagst du, dass du das nicht für möglich hältst? –

+0

Sie könnten versuchen, die Animation zu verlangsamen, indem Sie die 's' auf den Übergängen erhöhen, aber die beiden Übergänge verursachen den" Sprung " – ZimSystem

0

HTML:

<td><a data-toggle="collapse" href="#text1" aria-expanded="false" aria-controls="#text1"</a> 
<div class="collapse" id="text1" aria-expanded="true" style="padding-top:5px"><img src="..."></div> 

CSS:

.collapse.in{ 
    padding-bottom:5px; 
} 
0

Ich war dieses seltsame Verhalten, wo das Akkordeon zu einer viel größeren Höhe erweitern würde als der tatsächliche sichtbare Inhalt, und dann kollabiert (Sprung) zurück zur tatsächlichen sichtbaren Inhaltshöhe.

Es stellte sich heraus, dass mein Akkordeon Körper für diese Platte ein paar leere html Elemente hatte, die in meinem Fall in ihnen ein paar divs mit col-sm-4 Klasse und nichts waren. Sobald ich sie auskommentiert hatte, hörte dieses Sprungverhalten auf. Hoffe das hilft jemandem mit ähnlichen Problemen.

Verwandte Themen