В следующем коде «Пример A» не анимируется, а «Пример B» -.
Единственное отличие состоит в том, что A раньше не отображался, а B скрывался.
document.getElementById('set').onclick = function() {
document.getElementById('a').classList.add('clicked');
document.getElementById('b').classList.add('clicked');
};
document.getElementById('reset').onclick = function() {
document.getElementById('a').classList.remove('clicked');
document.getElementById('b').classList.remove('clicked');
};
.example {
background: blue;
transition: opacity 2000ms ease;
}
.example.clicked {
opacity: 0;
}
.example:not(.clicked) {
opacity: 1;
}
#a:not(.clicked) {
display: none;
}
#b:not(.clicked) {
visibility: hidden;
}
<button id="set">Show and fade out</button>
<button id="reset">Reset</button>
<div id="a" class="example">Example A</div>
<div id="b" class="example">Example B</div>
Почему два разных поведения? Почему непрозрачность не всегда оживляет?