Display none transition css: Transitions on the CSS display property

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
  • css

9

Так же можно и width и height поставить 0 , задержка будет работать , на display transition не отрабатывает , либо применять js.

  1. Вы не сможете навести мышь на элемент который не занимает место в DOM, т.е. у которого стиль display: none;
  2. Попробуйте через 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 Свойство

❮ Предыдущий Полное руководство по CSS Далее ❯


Пример

Наведите указатель мыши на элемент

, чтобы постепенно изменить ширину от 100 пикселей до 300 пикселей:

див {
  ширина: 100 пикселей;
  переход: ширина 2 с;
}

div:hover {
  ширина: 300 пикселей;
}

Попробуйте сами »

Другие примеры «Попробуйте сами» ниже.


Определение и использование

свойство перехода является сокращенным свойством для:

  • свойство перехода
  • длительность перехода
  • функция синхронизации перехода
  • задержка перехода

Примечание: Всегда указывайте свойство transition-duration, иначе продолжительность равно 0, и переход не будет иметь никакого эффекта.

Значение по умолчанию: все 0 с облегчением 0 с
Унаследовано: нет
Анимация: нет. Читать о анимированном
Версия: CSS3
Синтаксис JavaScript: объект .style.transition=»все 2″ Попробуй


Поддержка браузера

Числа в таблице указывают первую версию браузера, которая полностью поддерживает это свойство.

Числа, за которыми следует -webkit-, -moz- или -o-, указывают на первую версию, которая работала с префиксом.

Собственность
переход 26,0
4,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
Учебное пособие по W3. CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery

Лучшие ссылки
HTML Reference
CSS 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;
 переход: .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *