У меня есть скрытый div #about. Нажимая на ссылку #clickme, div становится невидимым функцией. К сожалению, переход CSS (непрозрачность) не работает, хотя он должен содержать оба класса .hide и .unhide, включая переходы. Есть идеи?Переход CSS не работает при смене класса по 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>
Я думаю, причина в том, почему это не работает, потому что вы не можете переходить с объекта на экран: none; для отображения: inline или block и т. д. ... –
попробуйте поставить '! important' в свойствах класса unhide. но свойство отображения не будет работать с переходом, поэтому вместо этого используйте ширину или высоту. –