Видимость является анимируемым свойство в соответствии со спецификацией, но переходы по видимости не работают постепенно, как можно было бы ожидать. Вместо этого переходы на задержку видимости скрывают элемент. С другой стороны, создание видимого элемента работает немедленно. Это , поскольку он определяется спецификацией (в случае функции синхронизации по умолчанию) и как он реализован в браузерах.
Это также полезное поведение, поскольку на самом деле можно представить различные визуальные эффекты, чтобы скрыть элемент. Затухание элемента - это только один вид визуального эффекта, который задается с использованием непрозрачности. Другие визуальные эффекты могут удалять элемент, например,свойство преобразования, также см. http://taccgl.org/blog/css-transition-visibility.html
Часто полезно сочетать переход непрозрачности с переходом на видимость! Хотя непрозрачность, кажется, делает правильные вещи, полностью прозрачные элементы (с непрозрачностью: 0) все еще получают события мыши. Так, например, ссылки на элемент, который был увязан с переходом непрозрачности, по-прежнему реагируют на клики (хотя и не видимые), а ссылки за выцветшим элементом не работают (хотя они видны через выцветший элемент). См. http://taccgl.org/blog/css-transition-opacity-for-fade-effects.html.
Это странное поведение можно избежать, просто используя оба перехода, переход на видимость и переход на непрозрачность. Таким образом, свойство видимости используется для отключения событий мыши для элемента, в то время как непрозрачность используется для визуального эффекта. Однако следует проявлять осторожность, чтобы не скрывать элемент во время воспроизведения визуального эффекта, который иначе не был бы видимым. Здесь удобна специальная семантика перехода видимости. При укрытии элемента элемент остается видимым при воспроизведении визуального эффекта и затем скрывается. С другой стороны, при обнаружении элемента переход видимости делает элемент видимым сразу, т. Е. Перед воспроизведением визуального эффекта.
последнее работает, потому что «непрозрачность» может принимать несколько значений между «0» и «1», а «видимость» может быть только «видимой» или «скрытой» (без промежуточных значений). – fcalderan