Eine kurze Frage.
Wenn ich ein div auf display: none
setze, werden die folgenden Elemente im DOM an die Stelle springen, wo das div war.
Wie kann ich diesen Sprung animieren, dass er sich nur sanft nach oben bewegt?
Thnaks im Voraus für jede Hilfe!jQuery, CSS: Animieren folgender DOM-Elemente nach der Anzeige: keine
Antwort
Sie können nicht. Anstelle der Anzeige: keine; mach es mit der Höhe: 0; und Übergang: Höhe .5s; Überlauf versteckt;
Dann werden Sie andere Divs neben anderen leicht verschieben. :)
Wenn du willst, kann ich einen einfachen Codepen machen.
Verwenden slideUp()
statt hide();
, wenn Sie verwenden jquery
$('.hidden').slideUp();
Gerade sie animieren. jQuery hat viele Möglichkeiten, es zu tun, zum Beispiel:
$('#myDiv').hide(200); // 200ms
@madalinivascu Nein, ich meine jQuery http://api.jquery.com/hide/#hide-duration-complete –
Um zu vermeiden, mit einer Breite ein verborgenes Element zu halten, die mit anderen Elementen auf der Seite stören könnten, sollten Sie einfach:
$('yourElement').slideUp();
Auf diese Weise Sie werden die Höhe yourElement
animieren und schließlich, um es tatsächlich aus dem Elementfluss zu entfernen.
Bearbeiten: Danke A. Wolff für den Kommentar. Unnötige Funktion nach .slideUp()
entfernt.
Nein, 'hide()' (ohne Dauer Parameter) wird nicht in fx queue geschoben werden bedeutet, dass das Element versteckt wird, bevor die SlideUp-Animation beendet wird, und es macht keinen Sinn, weil beide Methoden redundant sind. –
Danke, Sie haben vollkommen recht. Ich werde die Antwort korrigieren. –
Noch eine bessere Lösung für Sie. Sie können die blaue Box mit jedem Klick auf die rosa Box ein- und ausblenden.
$('.pinkBox').click(function() {
$('.pinkBox').addClass('show');
$('.blueBox').addClass('displayed');
});
$('.blueBox').click(function() {
$('.pinkBox').removeClass('show');
setTimeout(function() {
$('.blueBox').removeClass('displayed');
}, 300);
});
.blueBox {
height: 100px;
width: 100px;
background-color: blue;
transition: all .3s ease;
position: absolute;
display: none;
}
.pinkBox {
height: 100px;
width: 100px;
background-color: pink;
transition: all .3s ease;
position: absolute;
}
.show {
transform: translateY(100px);
}
.displayed {
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='blueBox'>
</div>
<div class='pinkBox'>
</div>
Sieht ziemlich solide aus, nicht das, was ich für dieses Problem brauche, aber eine ziemlich gute Lösung für eine Reihe von Dingen. Vielen Dank! – jonhue
@klvler Das 'display' zu animieren ist immer sehr problematisch. In den meisten Fällen funktioniert es einfach nicht so wie es beabsichtigt ist. –
@klvler Ich habe den Code ein wenig geändert. Die Anzeige 'display: none' wurde hinzugefügt, wenn die blaue Box nicht sichtbar ist. Prüfen Sie. –
- 1. CSS, JQuery - Flex-Elemente erscheinen nach der Anzeige nicht: keine;
- 2. Animieren: nach der Verwendung von Jquery
- 3. Animieren der Anzeige einer Ansicht
- 4. Jquery - animieren nach Umleitung
- 5. jQuery animieren() und CSS calc()
- 6. Slide-Down-Animation von der Anzeige: keine Anzeige: Block?
- 7. Jquery animieren css beim Scrollen verursacht Jitter
- 8. CSS - Anzeige: keine; funktioniert nicht
- 9. Anzeige Keine Für CSS-Animation
- 10. CSS - Anzeige: keine funktioniert nicht
- 11. Animieren einer CSS-Transformation mit jQuery
- 12. JQuery/CSS animieren Übergänge Verlangsamung Seite
- 13. Verwendung von jQuery mit CSS-Filter animieren.
- 14. Wie CSS-Anzeige keine Änderungen oder Eigentum blockieren JQuery mit?
- 15. Animieren der Bildperspektive mit jQuery?
- 16. jQuery - Text Animieren nach unten auf schweben
- 17. CSS-Anzeige: keine und Sichtbarkeit: ausgeblendet
- 18. jQuery fadeOut ohne Anzeige keine?
- 19. CSS Animieren statt
- 20. jQuery animieren Set Fallback
- 21. JQuery animieren
- 22. jQuery scrolltop animieren nicht animieren
- 23. Animierte Erweiterung der CSS-Anzeige: Tabelle
- 24. Objekt nach Klangamplitude animieren?
- 25. CSS JS Anzeige keine alter div
- 26. CSS animieren Dropdown-Menü & ändern Z-Index nach Animation
- 27. Animieren von jQuery-Form ui div nach der Einreichung
- 28. jQuery-Funktion show divs mit Anzeige: keine
- 29. CSS-Anzeige keine für Klassennamen, wenn allein
- 30. CSS Anzeige keine für li class Attribut
Das wäre schön :) – jonhue
reine CSS sein: http://codepen.io/bra1N/pen/bwQQOo hier gehen Sie, klicken Sie einfach auf dem Roten Platz :) – ristapk
ehrfürchtige Blicke , Danke! – jonhue