Carregando...

Animação de Link com css Efeito Zig Zag

Postado: 8 de outubro de 2022 Tempo de Leitura: 2 Minutos

Animação de Link com css Efeito Zig Zag

Este tutorial mostra como criar uma animação de link com efeito Zig Zag.

Nesta seção, projetaremos uma estrutura simples na tag <div>. 

temos dentro da tag <div> as tag <a>.

Essas tags usaremos para criar a nossa animação de link.

Vamos Adicionar o HTML:

   <div class="zigzag">
       <a href="#" class="link"> <i class="icon icon-light-bulb"></i> Veja mais...</a>
   </div>

Vamos Adicionar o CSS

Nesta seção, usaremos algumas propriedades CSS para projetar o nosso Link com animação.

.zigzag a:before { 

    bottom: -50px; 
    transform-origin: left; 
}

.zigzag a:hover:before {

  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200%25' height='100%25'%3E%3Cdefs%3E%3Cstyle%3E .wave%7B animation:wave 2s cubic-bezier(0.175, 0.885, 0.32, 1) infinite; animation-delay:-0.25s; stroke:%235be1e5; stroke-width:2; stroke-linecap:square; %7D @keyframes wave%7B 25%25%7B d:path('M 0 20 L 10 15 L 20 20 L 30 25 L 40 20 ');%0A%7D%0A50%25%7B%0Ad:path('M 0 20 L 10 25 L 20 20 L 30 15 L 40 20  ');%0A%7D%0A75%25%7B%0Ad:path('M 0 20 L 10 15 L 20 20 L 30 25 L 40 20 ');%0A%7D %7D %3C/style%3E%3C/defs%3E%3Cpattern id='wavePattern' x='0' y='0' width='40' height='40' patternUnits='userSpaceOnUse'%3E%3Cpath fill='none' class='wave' d='M 0 20 L 10 25 L 20 20 L 30 15 L 40 20' /%3E%3C/pattern%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='url(%23wavePattern)'%3E%3C/rect%3E%3C/svg%3E") 0px 50%/40px 40px repeat-x;
  animation: waving 2s linear infinite reverse;
  transform-origin: right;
}

.link {

    display: inline-block;
    position: relative;
    color: #242424;
    font-family: 'open_sansregular';
    text-decoration: none;
    font-size: 20px;
    z-index: 2;
    transition: 0.2s ease-in-out;
    margin-right: 10px;
    width: auto;

}

.link:hover { color:#5be1e5; }
 
.link:hover:before {
  transition: transform 300ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transform-origin: left;
  -webkit-animation: waving 2s linear infinite;
          animation: waving 2s linear infinite;
  transform: scaleX(1);
}

@-webkit-keyframes waving {
  to {
    background-position: 80px 50%, 160px 50%;
  }
}
@keyframes waving {
  to {
    background-position: 80px 50%, 160px 50%;
  }
}

.link:before {

  content: "";
  position: absolute;
  width: 100%;
  height: 80px;
  left: 0;
  bottom: -55px;
  z-index: -1;
  transform: scaleX(0);
  transition: transform 300ms cubic-bezier(0.175, 0.885, 0.32, 1);
  transform-origin: right;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200%25' height='100%25'%3E%3Cdefs%3E%3Cstyle%3E .wave%7B stroke:%235be1e5; stroke-width:2; stroke-linecap:square; %7D %3C/style%3E%3C/defs%3E%3Cpattern id='wavePattern' x='0' y='0' width='80' height='80' patternUnits='userSpaceOnUse'%3E%3Cpath fill='none' class='wave' d='M 0 40 Q 20 40 40 40 Q 60 40 80 40' /%3E%3C/pattern%3E%3Crect x='0' y='0' width='100%25' height='100%25' fill='url(%23wavePattern)'%3E%3C/rect%3E%3C/svg%3E") 0px 50%/80px 80px repeat-x;

}

Combinando as Duas seções acima Html e Css temos o seguinte Resultado!

Veja o Resultado baixo!

Baixar Código Veja Funcionando

Publicado por: Loop Nerd

617 Visualizações

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Artigos Relacionados