Наконец, я нашел решение для меня, объединив opacity
с position absolute
(не занимая пространство, когда скрыто).
.toggle {
opacity: 0;
position: absolute;
transition: opacity 0.8s;
}
.parent:hover .toggle {
opacity: 1;
position: static;
}
Чтобы проверить, является ли эта переменная либо null
, либо undefined
, используйте оператор не равных равных операторов для null
.
if (myVar != null) {
}
Однако всегда лучше использовать тройные равные
if (!(myVar === null || typeof myVar === 'undefined')) {
}
Сравнение
(undefined == null) => true
(null == null) => true
(undefined === null) => false
(null === null) => true
(0 == null) => false
(0 == undefined) => false
(0 === null) => false
(0 === undefined) => false
(false == null) => false
(false == undefined) => false
(false === null) => false
(false === undefined) => false
(null) => false
(undefined) => false
(0) => false
(false) => false
Нет короткого пути. Сначала вам нужно проверить неопределенное значение до нулевого значения, потому что
!myVar
делает предположение, что myVar предварительно определен, и будет бросать
Uncaught ReferenceError: myVar is not defined
в том случае, если вы никогда не определяли эта переменная.
Эта проверка требуется только в том случае, если вы извлекаете данные из какого-то внешнего источника и не знаете, существует ли эта переменная. Если вы уже определили его где-то в своем коде и, например, ожидаете ввода пользователем для его установки, вы можете воспользоваться ярлыком
!myVar
просто потому, что знаете , это уже потому что вы сделали это раньше в коде.