Ich habe eine versteckte div #about. Durch Klicken auf den Link #clickme wird das div durch eine Funktion eingeblendet. Leider funktioniert der CSS-Übergang (Opazität) nicht, obwohl er die beiden Klassen .hide und .unhide einschließlich der Übergänge beibehalten sollte. Irgendwelche Ideen?CSS-Übergang funktioniert nicht beim Ändern der Klasse von Javascript
HTML
<li><a id="clickme" href="javascript:unhide('about');">click me</a></li>
<div id="about" class="hide">
<p>lorem ipsum …</p>
</div>
CSS
.hide {
display: none;
-webkit-transition: opacity 3s;
-moz-transition: opacity 3s;
-o-transition: opacity 3s;
transition: opacity 3s;
opacity:0;
}
.unhide {
display: inline;
opacity:1;
}
SCRIPT
<script>
function unhide(divID) {
var element = document.getElementById(divID);
if (element) {
element.className=(element.className=='hide')?'hide unhide':'hide';
}
}
</script>
Ich denke, der Grund, warum es nicht funktioniert, ist, weil Sie ein Objekt nicht aus der Anzeige wechseln können: keine; um anzuzeigen: Inline oder Block etc ... –
versuchen Sie '! wichtig 'in der Klasse unhide Eigenschaften. Die Anzeigeeigenschaft funktioniert jedoch nicht mit dem Übergang. Verwenden Sie stattdessen Breite oder Höhe. –