» »

Эффект на зачеркнутый текст при наведении

Эффект на зачеркнутый текст при наведении

Эффект зачеркивания при наведении на пункт в горизонтальном меню. Наиболее эффектно будет смотреться на лендингах, где горизонтальное меню расположено поверх фонового изображения. Также является отличным способом показать акцент при изменении или исправлении чьего-либо сообщения.

HTML

Простая разметка меню

Код
<nav class="menu">
  <ul>
  <li><a href="#">О нас</a></li>
  <li><a href="#">Портфолио</a></li>
  <li><a href="#">Клиенты</a></li>
  <li><a href="#">Цены</a></li>
  <li><a href="#">Контакты</a></li>
  </ul>
</nav>


CSS

И оформление меню с анимацией

Код
.menu {
  width: 100%;
  position: fixed;
  top: 50px;
  text-align: center;
}

.menu ul{
  margin: 0;
  padding: 0;
  list-style: none;
}
.menu ul li{
  display: inline-block;
  vertical-align: middle;
}

.menu li a {
  font-family: 'Open Sans', sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  text-decoration: none;
  color: #fff;
  margin: 0 15px;
  font-size: 18px;
  position: relative;
  display: inline-block;
}

.menu li a:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 2px;
  background: #fff;
  top: 47%;
  animation: out 0.2s cubic-bezier(1, 0, 0.58, 0.97) 1 both;
}

.menu li:hover a:before {
  animation: in 0.2s cubic-bezier(1, 0, 0.58, 0.97) 1 both;
}

.menu li:nth-child(1) a {
  animation: show 0.2s 1.1s ease 1 both;
}

.menu li:nth-child(2) a{
  animation: show 0.2s 1.2s ease 1 both;
}

.menu li:nth-child(3) a{
  animation: show 0.2s 1.3s ease 1 both;
}

.menu li:nth-child(4) a {
  animation: show 0.2s 1.4s ease 1 both;
}

.menu li:nth-child(5) a {
  animation: show 0.2s 1.5s ease 1 both;
}

@keyframes in {
  0% {
  width: 0;
  left: 0;
  right: auto;
  }
  100% {
  left: 0;
  right: auto;
  width: 100%;
  }
}

@keyframes out {
  0% {
  width: 100%;
  left: auto;
  right: 0;
  }
  100% {
  width: 0;
  left: auto;
  right: 0;
  }
}

@keyframes show {
  0% {
  opacity: 0;
  transform: translateY(-10px);
  }
  100% {
  opacity: 1;
  transform: translateY(0);
  }
}


Следует отметить один момент, что для достижения эффекта плавного перетекания с одного пункта меню на другой, нужно явно прописывать в стилях CSS тайминги анимации каждого пункта меню.
Вот пример, указываем конкретный пункт меню, через свойство nth-child() и увеличиваем время на 0.1s для каждого последующего пункта меню:

Код
.menu li:nth-child(1) a {
  animation: show 0.2s 1.1s ease 1 both;
}
.menu li:nth-child(2) a{
  animation: show 0.2s 1.2s ease 1 both;
}
.menu li:nth-child(3) a{
  animation: show 0.2s 1.3s ease 1 both;
}
2019-01-16 Просмотров: 368 Комментарий: (0)

Поделиться в социальных сетях

Материал разместил

Комментарий: 0
avatar