Carregando...

Animação de Link com css Efeito Zig Zag

Postado: 8 de outubro de 2022

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

525 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