Ist es möglich, den Übergang zwischen dem Öffnen/Schließen-Status des Elements <details>
mit nur CSS zu animieren?Übergang zwischen open close in Details Element
Antwort
Nein, derzeit nicht. Ja, aber nur wenn Sie die height
kennen oder die font-size
animieren können.
Ursprünglich war dies nicht der Fall. Von http://html5doctor.com/the-details-and-summary-elements/, "... wenn Sie CSS-Übergänge verwenden könnten, um das Öffnen und Schließen zu animieren, aber wir können noch nicht." (Es gibt einen Kommentar zu HTML5 Arzt am Ende, aber es scheint, JS zu erfordern die CSS-Animation zu erzwingen.)
Es war möglich, verschiedene Stile basierend auf verwenden, ob sie geöffnet oder geschlossen sind, geht jedoch tat es nicht "nimm" normalerweise. Heute funktionieren die Übergänge jedoch, wenn Sie die height
kennen oder die font-size
animieren können. Beispiele und weitere Details finden Sie unter http://codepen.io/morewry/pen/gbJvy.
Dies war die 2013-Lösung, die Art täuscht es:
CSS (Mai-Präfixe hinzufügen müssen)
/* http://daneden.me/animate/ */
@keyframes fadeInDown {
0% {
opacity: 0;
transform: translateY(-1.25em);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.details-animated[open] {
animation-name: fadeInDown;
animation-duration: 0.5s;
}
HTML
<details class="details-animated">
<summary>CSS Animation - Summary</summary>
Try using [Dan Eden's fadeInDown][1] to maybe fake it a little. Yay, some animation.
</details>
heute Dies funktioniert:
CSS (Mai müssen Präfixe hinzufügen)
.details-animated {
transition: height 1s ease;
}
.details-animated:not([open]) { height: 1.25em; }
.details-animated[open] { height: 3.75em; }
PS: Nur getestet in Chrome. Hear FF unterstützt IE und Edge unterstützen immer noch nicht details
im Allgemeinen immer noch nicht.details
.
(Sie können Keyframe-Animationen oder Übergänge verwenden, um alle möglichen anderen Animationen zu öffnen. Ich habe fadeInDown
nur zu Illustrationszwecken gewählt. Es ist eine vernünftige Wahl, die ein ähnliches Gefühl geben wird, wenn Sie nicht hinzufügen können Markup oder nicht wissen, die Höhe des Inhalts.Ihre Optionen sind jedoch nicht darauf beschränkt: siehe die Kommentare zu dieser Antwort, die zwei Alternativen, einschließlich der font-size
Ansatz enthalten.)
funktioniert Es ist schade, es funktioniert nicht. BTW Ich kopierte dein Beispiel in einer Geige und es hat nicht funktioniert, ich sehe keine Veränderung. – olanod
Es funktioniert für mich, aber es funktioniert nur mit '-webkit',' -moz' und '-o' (dies ist ein reduziertes Codebeispiel). Ich habe das auch bis jetzt bearbeitet. Codepen.io hat eine "Präfix frei" -Option für CSS - ich erinnere mich nicht, wenn JSFiddle tut? Überprüfen Sie den neuesten Code und versuchen Sie möglicherweise, die Präfixe hinzuzufügen. – morewry
Entschuldigung, ich habe die Präfixe nicht überprüft. – olanod
Angesichts der Höhe muss schnappen Irgendwann bevorzuge ich es, die Höhe zu animieren und dann zu schnappen. Wenn Sie das Glück haben, alle Elemente in einer ähnlichen Höhe zu haben, kann diese Lösung sehr effektiv sein. (Sie müssen tun, ein div in Ihrem Detail Elemente obwohl)
@keyframes slideDown {
0% {
opacity: 0;
height: 0;
}
100% {
opacity: 1;
height: 20px; /* height of your smallest content, e.g. one line */
}
}
details {
max-width:400px;
}
details[open]>div {
animation-name: slideDown;
animation-duration: 200ms;
animation-timing-function:ease-in;
overflow:hidden;
}
siehe http://dabblet.com/gist/5866920 zum Beispiel
Meine kurze Antwort lautet: Sie können nicht zwischen Zusammenfassung und dem Rest der Details Inhalts übergehen.
ABER!Ich antworte, weil es die erste war:
Sie können in der Zusammenfassung zwischen dem Selektor Details und Details [open]
details{
position: relative;
width: 100px;height: 100px;
perspective: 1000px;
}
div{
position: absolute;
top: 20px;
width: 100px;height: 100px;
background: black;
}
details .transition{
transition: 1s linear;
transform-origin: right top;
;
}
details[open] .transition{
transform: rotateY(180deg);
background: orangered;
}
<details>
<summary>
<div></div>
<div class="transition"></div>
</summary>
</details>
NB einigen schönen Übergang tun Ergebnis daraus googlen!
Natürlich ist es möglich:
<style type="text/css">
DETAILS[open] SUMMARY ~ * {
animation: sweep .5s ease-in-out;
}
@keyframes sweep {
0% {opacity: 0; margin-left: -10px}
100% {opacity: 1; margin-left: 0px}
}
</style>
Während dieser Code die Frage beantworten kann, würde die Bereitstellung eines zusätzlichen Kontextes hinsichtlich dessen, wie und/oder warum er das Problem löst, den langfristigen Wert der Antwort verbessern. Bitte lesen Sie diese [how-to-answer] (http://stackoverflow.com/help/how-to-answer) für eine qualitativ hochwertige Antwort. – thewaywewere
- 1. Open-Close-Prinzip Beispiel
- 2. Share-Element-Übergang zwischen Textansicht und Symbolleistentitel
- 3. Monatskursdaten: Open, High, Low und Close
- 4. Perl: creating Zombies durch open() ohne close()
- 5. Übergang von Listenelement in Details wie Google Inbox zu erweitern
- 6. Android shared element Übergang
- 7. Wrap Auswahl in Open/Close Tag wie TextMate?
- 8. Kendo UI Menü open() close() nicht in versteckt Eltern arbeite
- 9. Android: Geteilt Element Übergang zwischen Aktivitäten zu beschleunigen
- 10. Übergang zwischen Prozessoren
- 11. SceneKit - Übergang zwischen Texturen
- 12. Freigegebenes Element Übergang mit viewPager
- 13. Sofort Übergang nach Element ausgelöst
- 14. Benutzerdefinierte gemeinsame Element Übergang in Ende Aktivität
- 15. Gemeinsames Element Übergang, wenn ActionBar Zurück-Taste
- 16. Beziehung zwischen "close" für PreparedStatement und Verbindung?
- 17. Unterschied zwischen webdriver.Dispose(), .Close() und .Quit()
- 18. Unterschied zwischen Display.getCurrent.close() und PlatformUI.getWorkbench(). Close()
- 19. animierte Übergang zwischen zwei Imageview
- 20. Objective-C - Übergang zwischen NSUmageViews
- 21. Layout-Übergang zwischen mehreren Unterpässen in Vulkan
- 22. Trigger CSS-Übergang auf angehängtem Element
- 23. CSS-Übergang beim Hover für untergeordnetes Element
- 24. Android-Fragment Übergang mit gemeinsamen Element
- 25. CollapsingToolbarLayout Titel als ein gemeinsames Element Übergang
- 26. Unterschied zwischen close() und trennen() in Android Bluetooth API?
- 27. Android-Fragment geteiltes Element Übergang Implementierung
- 28. CSS-Übergang Einblenden nur für Element
- 29. IOS-Äquivalent von Androids Gemeinsames Element Übergang
- 30. Close Tab in Javascript
Sie können versuchen, die Höhe davon Animieren – Huangism
Es ist nicht – olanod