эффект при наведении на текст svg

139
26 августа 2019, 12:10

на сайте https://vintage.com.ua заголовок там есть слово business серым написано при наведении на него слов как бы рябить как можно реализовать такой эффект

Answer 1

Смысл этого эффекта в том, чтобы с помощью clip mask разбить текст на некие слои и потом поверх текста делать смещение этих слоёв .

body { 
  background: black; 
} 
 
.glitch { 
  color: white; 
  font-size: 100px; 
  position: relative; 
  width: 400px; 
  margin: 0 auto; 
} 
 
@keyframes noise-anim { 
  0% { 
    clip: rect(24px, 9999px, 43px, 0); 
  } 
  5% { 
    clip: rect(28px, 9999px, 20px, 0); 
  } 
  10% { 
    clip: rect(84px, 9999px, 87px, 0); 
  } 
  15% { 
    clip: rect(36px, 9999px, 56px, 0); 
  } 
  20% { 
    clip: rect(91px, 9999px, 86px, 0); 
  } 
  25% { 
    clip: rect(81px, 9999px, 80px, 0); 
  } 
  30% { 
    clip: rect(16px, 9999px, 76px, 0); 
  } 
  35% { 
    clip: rect(16px, 9999px, 71px, 0); 
  } 
  40% { 
    clip: rect(48px, 9999px, 85px, 0); 
  } 
  45% { 
    clip: rect(77px, 9999px, 40px, 0); 
  } 
  50% { 
    clip: rect(83px, 9999px, 58px, 0); 
  } 
  55% { 
    clip: rect(100px, 9999px, 28px, 0); 
  } 
  60% { 
    clip: rect(29px, 9999px, 82px, 0); 
  } 
  65% { 
    clip: rect(81px, 9999px, 3px, 0); 
  } 
  70% { 
    clip: rect(57px, 9999px, 24px, 0); 
  } 
  75% { 
    clip: rect(34px, 9999px, 95px, 0); 
  } 
  80% { 
    clip: rect(44px, 9999px, 33px, 0); 
  } 
  85% { 
    clip: rect(21px, 9999px, 6px, 0); 
  } 
  90% { 
    clip: rect(73px, 9999px, 71px, 0); 
  } 
  95% { 
    clip: rect(35px, 9999px, 55px, 0); 
  } 
  100% { 
    clip: rect(13px, 9999px, 99px, 0); 
  } 
} 
.glitch:after { 
  content: attr(data-text); 
  position: absolute; 
  left: 2px; 
  text-shadow: -1px 0 red; 
  top: 0; 
  color: white; 
  background: black; 
  overflow: hidden; 
  clip: rect(0, 900px, 0, 0); 
  animation: noise-anim 2s infinite linear alternate-reverse; 
} 
 
@keyframes noise-anim-2 { 
  0% { 
    clip: rect(63px, 9999px, 25px, 0); 
  } 
  5% { 
    clip: rect(19px, 9999px, 87px, 0); 
  } 
  10% { 
    clip: rect(64px, 9999px, 40px, 0); 
  } 
  15% { 
    clip: rect(92px, 9999px, 47px, 0); 
  } 
  20% { 
    clip: rect(63px, 9999px, 100px, 0); 
  } 
  25% { 
    clip: rect(70px, 9999px, 32px, 0); 
  } 
  30% { 
    clip: rect(52px, 9999px, 81px, 0); 
  } 
  35% { 
    clip: rect(23px, 9999px, 39px, 0); 
  } 
  40% { 
    clip: rect(1px, 9999px, 14px, 0); 
  } 
  45% { 
    clip: rect(36px, 9999px, 97px, 0); 
  } 
  50% { 
    clip: rect(12px, 9999px, 69px, 0); 
  } 
  55% { 
    clip: rect(18px, 9999px, 3px, 0); 
  } 
  60% { 
    clip: rect(86px, 9999px, 49px, 0); 
  } 
  65% { 
    clip: rect(32px, 9999px, 25px, 0); 
  } 
  70% { 
    clip: rect(65px, 9999px, 4px, 0); 
  } 
  75% { 
    clip: rect(33px, 9999px, 18px, 0); 
  } 
  80% { 
    clip: rect(56px, 9999px, 16px, 0); 
  } 
  85% { 
    clip: rect(89px, 9999px, 35px, 0); 
  } 
  90% { 
    clip: rect(51px, 9999px, 45px, 0); 
  } 
  95% { 
    clip: rect(11px, 9999px, 100px, 0); 
  } 
  100% { 
    clip: rect(72px, 9999px, 26px, 0); 
  } 
} 
.glitch:before { 
  content: attr(data-text); 
  position: absolute; 
  left: -2px; 
  text-shadow: 1px 0 blue; 
  top: 0; 
  color: white; 
  background: black; 
  overflow: hidden; 
  clip: rect(0, 900px, 0, 0); 
  animation: noise-anim-2 3s infinite linear alternate-reverse; 
}
<div class="glitch" data-text="GLITCH">GLITCH</div> 

READ ALSO
Передача base64 строки с сервера на клиент

Передача base64 строки с сервера на клиент

Есть приложение mvcНа странице есть <input id="fileLoader" type="file" />

140
Как плавно переместить часть блока за границы родительского контейнера? [закрыт]

Как плавно переместить часть блока за границы родительского контейнера? [закрыт]

Как плавно переместить блок влево за границу родительского контейнера и при этом скрыть перемещенную часть?

144
Борьба со спамом

Борьба со спамом

Вот такая задача - борьба со спамомКапча в форме взламывается, и кто-то обходит систему защиты обороны почтовых сообщений

132
почему не добавляется класс?

почему не добавляется класс?

как добавить класс span,который находится в свою очередь в input,у кого есть атребут чекед?

130