Animación de desplazamiento de botón sesgado dividido usando CSS

El efecto de animación de desplazamiento de botón sesgado dividido se puede crear utilizando las pseudoclases antes y después en CSS. Al pasar el cursor, cambie la asimetría e intercambie las posiciones de antes y después de la pseudoclase.

Pasos:

  • Cree un archivo HTML llamado index.html.
  • Cree un elemento div para el botón.
  • Añade estilos al botón.
  • Tanto en la pseudoclase anterior como posterior del botón, establezca el color de fondo del botón y establezca el ancho en 50%, y transforme ambos para que estén sesgados por algún ángulo.
  • En la pseudoclase anterior del botón, establezca la posición superior sobre la posición superior del botón.
  • En la pseudoclase posterior del botón, establezca la posición superior debajo de la posición superior del botón y establezca la posición izquierda en el 50 % del ancho del botón.
  • Al pasar el mouse, establezca la posición superior de ambas pseudoclases en 0 y cambie la asimetría a 0 grados.

Código:

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
          
        .container {
            position: fixed;
            top: 50vh;
            left: 50vw;
            transform: translate(-50%, -50%);
        }
          
        .btn {
            position: relative;
            letter-spacing: 0.25em;
            font-size: 30px;
            height: 60px;
            /* To center the text vertically */
            display: flex;
            align-items: center;
            cursor: pointer;
        }
          
        .btn::after,
        .btn::before {
            content: "";
            position: absolute;
            height: 100%;
            width: 50%;
            transform: skewX(30deg);
            background: transparent;
            transition: all 0.7s cubic-bezier(0.7, -0.5, 0.25, 1.5);
            z-index: -1;
        }
          
        .btn::before {
            top: -40%;
            left: 0;
            background-color: navajowhite;
        }
          
        .btn::after {
            top: 40%;
            left: 50%;
            background-color: greenyellow;
        }
          
        .btn:hover::before {
            top: 0;
            left: 50%;
            transform: skewX(0deg);
        }
          
        .btn:hover::after {
            top: 0;
            left: 0;
            transform: skewX(0deg);
        }
    </style>
</head>
  
<body>
    <div class="container">
        <div class="btn">GeeksforGeeks</div>
    </div>
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por vivshubham y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *