transition — Управление задержкой display:none
Задать вопрос
Вопрос задан
Изменён 1 год 3 месяца назад
Просмотрен 30k раз
Добрый день.
Есть задача: сделать задержку скрытия элемента (меню второго уровня). Как это сделать на JS — догадываюсь, но хотелось бы обойтись одним CSS.
Если вместо display использовать visibility, то все хорошо:
.menu.second { visibility:hidden; opacity:0; transition:visibility 0s linear 0.5s,opacity 0.5s linear; } .menu.second:hover { visibility:visible; opacity:1; transition-delay:0s; }
Но мне необходимо именно display:block и display:none.
Как это реализовать?
- transition
9
Так же можно и width
и height
поставить 0
, задержка будет работать , на display
transition
не отрабатывает , либо применять js.
- Вы не сможете навести мышь на элемент который не занимает место в DOM, т.е. у которого стиль
display: none;
Попробуйте через
position: absolute;
. т.е. как-то так..menu.second { position: absolute; visibility:hidden; opacity:0; transition:visibility 0s linear 0.5s,opacity 0.5s linear; } .menu.second:hover { position: static; visibility:visible; opacity:1; transition-delay:0s; }
Но проблема с активацией объекта (наведением мыши) остаётся.
1
Зарегистрируйтесь или войдите
Регистрация через GoogleРегистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Переход CSS Свойство
Пример
Наведите указатель мыши на элемент
див
{
ширина: 100 пикселей;
переход: ширина 2 с;
}
div:hover {
ширина: 300 пикселей;
}
Попробуйте сами »
Другие примеры «Попробуйте сами» ниже.
Определение и использование
свойство перехода
является сокращенным свойством для:
- свойство перехода
- длительность перехода
- функция синхронизации перехода
- задержка перехода
Примечание: Всегда указывайте свойство transition-duration, иначе продолжительность равно 0, и переход не будет иметь никакого эффекта.
Значение по умолчанию: | все 0 с облегчением 0 с |
---|---|
Унаследовано: | нет |
Анимация: | нет. Читать о анимированном |
Версия: | CSS3 |
Синтаксис JavaScript: | объект .style.transition=»все 2″ Попробуй |
Поддержка браузера
Числа в таблице указывают первую версию браузера, которая полностью поддерживает это свойство.
Числа, за которыми следует -webkit-, -moz- или -o-, указывают на первую версию, которая работала с префиксом.
Собственность | |||||
---|---|---|---|---|---|
переход | 26,0 | 10,0 | 16,0 4,0 -моз- | 6.1 3.1 -вебкит- | 12,1 10,5 -о- |
Синтаксис CSS
переход: свойство продолжительность временная функция задержка |начальный|наследовать;
Значения свойств
Значение | Описание |
---|---|
свойство перехода | Указывает имя свойства CSS, для которого предназначен эффект перехода. |
продолжительность перехода | Указывает, сколько секунд или миллисекунд требуется для завершения эффекта перехода. |
функция времени перехода | Задает кривую скорости эффекта перехода |
задержка перехода | Определяет, когда начнется эффект перехода |
начальный | Устанавливает для этого свойства значение по умолчанию. Читать про начальный |
унаследовать | Наследует это свойство от родительского элемента. Читать о унаследовать |
Другие примеры
Пример
Когда получает фокус, постепенно меняйте ширину от 100 пикселей до 250 пикселей:
input[type=text] {
ширина: 100 пикселей;
переход: ширина 0,35 секунды;
}
input[type=text]:focus {
ширина: 250 пикселей;
}
Попробуйте сами »
Связанные страницы
Учебник CSS: Переходы CSS
Ссылка HTML DOM: свойство перехода
❮ Предыдущая Полное руководство по CSS Далее ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник HTMLУчебник CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
Лучшие ссылки
HTML ReferenceCSS Reference
JavaScript Reference
SQL Reference
Python Reference
W3.CSS Reference
Bootstrap Reference
PHP Reference
HTML Colors
Java Reference
Angular Reference
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
ФОРУМ | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания.
Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности. Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
【CSS】displayにtransitionが効かない時の対処法 — Webデザインとかコーディングを勉強中の方に届けたいTipsを発信するブログ
ある要素にマウスホバーやクリックイベントを行い、非表示の要素を「 Дисплей : нет;
」から「 отображение: блок;
」に切り替える際、 переход
を使用して要素を徐々に表示させようとすると、 переход
が効かず要素が瞬時に出現してしまい困ったなという経験はないでしょうか。
今回の記事では、 дисплей
に переход
が効かない時の対処法について解説します。
コンテンツ
- displayにtransitonが効かない
- HTML
- CSS
- なぜdisplayにtransitonが効かないのか
- displayにtransitonが効かない時の対処法
- CSS
- видимостьとopacityの併用が必要な理由
- видимостьのみ指定した場合
- opacityのみ指定した場合
- видимостьとopacityを併用した場合
- まとめ
displayにtransitonが効かない
今回はマウスホバーイベントで考えます。
HTML
<дел>дел>;
УСБ
. содержание { дисплей: нет; //要素を非表示。 } .content:наведите { дисплей: блок; //要素を表示。 переход: .3с; //アニメーションの速度を指定。 }
上記のように дисплей
を使用し нет
から блок
に切り替えて非表示の 実は display
プロパティに transition
を指定しても動作しません。
なぜdisplayにtransitonが効かないのか 9 0024
переход
は 「2つの要素を対象にその状態間の変化を定義する」 プロパティです。
要素を非表示にする「 дисплей: нет;
」は存在が無効にされた状態であるため、 переход
の対象にはならず、 переход
を指定しても反応しないのです。
displayにtransitonが効かない時の対処法
переход
を使用して表示非表示の変化を指定したい時は дисплей
を使用するのではなく、 видимость
と непрозрачность
の2つのプロパティを併用することで、 переход
を機能させることができます。
CSS
.содержание { видимость: скрыто; непрозрачность: 0; } .content:наведите { видимость: видимость; непрозрачность: 1; переход: .3s;//アニメーションの速度を指定。 } 9
видимость
とпрозрачность
の二つのプロパティが必видимость 9000 6
видимость
отображение отображение отображение распознавание 、видимость: скрыто;
はдисплей: нет;
のように要素の存在を完全に無効にするわけではなく、レイアウト自体は変更されまНомер телефонаです。
したがって要素自体は存在するので、
переход
が適用されます。しかし、
видимость
を指定しただけではпереход
で要素を徐々に表示させることができません。 9002 6 дисплей を使用した時のように、要素が高速に表示されます。
видимость
はпереход
の適用対象ではありますが、 単独で使用すると変化をつけられません。. содержание { видимость: скрыто; } .content:наведите { видимость: видимость; переход: .3s;//アニメーションの速度を指定。 }прозрачность,
прозрачность
プロパティは要素の透明度を指定するプロパティです。二つの要素にнепрозрачность: 0;
とнепрозрачность: 1;
を指定し、переход
を使用してイベントを発生させると要素が徐々に表示されます。しかし、
непрозрачность: 0; дисплейックできてしまい非常に厄介です。非表示コンテンツの下にリンクなどがある場合、そのリンクをクリックすることができなくなります。
.содержание { непрозрачность: 0; } .content:наведите { непрозрачность: 1; переход: .3s;//アニメーションの速度を指定。 }видимостьとнепрозрачностьを併用した場合
видимость
とнепрозрачность
を併用した場合、片方のみ指定した場合の問題をすべて解決することができます。
непрозрачность
のおかげでпереход
の変化をつけることができ、видимость
のおかげで要素をクリックできなくなります。
お互いの短所を補っているわけです。.содержание { видимость: скрыто; непрозрачность: 0; } .content:наведите { видимость: видимость; непрозрачность: 1; переход: .