CSS Dropdown Переходы - PullRequest
       2

CSS Dropdown Переходы

1 голос
/ 13 апреля 2019

Я немного растерялся, как анимировать выпадающее меню только с помощью CSS.Не могли бы вы, ребята, зажечь меня здесь?

Я пытался

  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;   

, но я не могу нажать на заметку, где, как именно это сделать.Подменю отображается, но мгновенно без каких-либо переходов.Любая помощь будет отличной.

.dropbtn {
  background-color: inherit;
  color: inherit;
  padding: inherit;
  font-size: inherit;
}

.dropdown {
  position: relative;
  display: inline-block;
  font-size: inherit;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: white;
  min-width: 150px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  height: 100px;     
}

.dropdown-content a {
  color: black;
  padding: 12px 12px;
  text-decoration: none;
  display: block;
  background-color: white;
}

.dropdown:hover .dropdown-content {
  display: block;
  height: 200px;
}
<ul>
  <li class="dropdown">
    <a href="javascript:" class="dropbtn">Dropdown</a>
    <div class="dropdown-content">
      <a href="#">Menu 1</a>
      <a href="#">Menu 2</a>
      <a href="#">Menu 3</a>
    </div>
  </li> 
</ul>

1 Ответ

1 голос
/ 13 апреля 2019

Свойство display нельзя анимировать, потому что оно либо одно значение, либо нет, между ними нет ничего. Вы скорее хотите изменить свойство opacity элемента, установив для него значение по умолчанию 0 и значение 1 при наведении курсора, удалив display: none;. В дополнение к этому, используйте pointer-events: none, чтобы невидимый элемент .dropdown-content не перехватывал любые события мыши, такие как зависание или щелчок, и установите его на pointer-events: all, когда родительский элемент находится при наведении курсора.

.dropbtn {
  background-color: inherit;
  color: inherit;
  padding: inherit;
  font-size: inherit;
}

.dropdown {
  position: relative;
  display: inline-block;
  font-size: inherit;
}

.dropdown-content {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  background-color: white;
  min-width: 150px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all 0.3s ease;
  height: 100px;     
}

.dropdown-content a {
  color: black;
  padding: 12px 12px;
  text-decoration: none;
  display: block;
  background-color: white;
}

.dropdown:hover .dropdown-content {
  opacity: 1;
  height: 200px;
  pointer-events: all;
}
<ul>
 <li class="dropdown">
      <a href="javascript:" class="dropbtn">Dropdown</a>
           <div class="dropdown-content">
               <a href="#">Menu 1</a>
               <a href="#">Menu 2</a>
               <a href="#">Menu 3</a>
          </div>
  </li>
</ul>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...