Ich habe ein einfaches Toggle-Plus-Zeichen, das ein div zu erscheinen und in ein X drehen soll, die dann angeklickt werden kann, um das div zu schließen.Problem mit CSS-Übergang auf Element mit jQuery gezeigt
Alles funktioniert wie geplant, außer es gibt keinen fließenden Übergang in der Rotation des Plus, es erscheint nur schon gedreht.
Wenn ich die display:none
aus dem #showbox
Div entfernen und $("#showbox").show()
entfernen, funktioniert die Animation/Übergang. Es ist nur, wenn das div ist versteckt und dann mit .show()
gezeigt, dass es nur dreht, ohne zu animieren.
Ich bin sicher, dass ich dieses Problem zu umgehen denken kann, ich frage mich nur, wenn jemand erklären kann, warum dies könnte
$("#togglebox").click(function() {
$("#showbox").show();
$("#showbox .toggleplus").toggleClass("togglex");
});
#showbox {
background: #000;
width: 500px;
height: 200px;
display: none;
}
.toggleplus {
width: 30px;
height: 30px;
transition: all .5s;
color:#111;
}
#showbox .toggleplus {
color:#FFF;
}
.togglex {
transform: rotate(-46deg);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="togglebox">
<p>LEARN MORE</p>
<div class="toggleplus">+</div>
</div>
<div id="showbox">
<div class="toggleplus">+</div>
<p>Blah Blah Blah</p>
</div>
Wo ist das Pluszeichen in diesem Code? –
War nicht wirklich notwendig, um alle HTML für die Frage hinzuzufügen, aber ich warf ein einfaches '+' zur Klärung dort. – WheatBeak
Wie Sie sehen können, wenn das Snippet das erste Mal ausgeführt wird und das '+' angeklickt wird, wird es nicht animiert. Bei nachfolgenden Klicks wird es. – WheatBeak