¿Cómo crear una barra de navegación animada con efecto de desplazamiento usando HTML y CSS?

La barra de navegación o barra de navegación o barra de menús es el componente más importante de cualquier aplicación web o móvil. El usuario solo puede navegar de una página a otra página a través de este menú. Por lo general, se proporciona en la parte superior del sitio web para brindar una mejor UX (experiencia de usuario).

Enfoque: El enfoque es crear primero una barra de navegación y luego animar una línea debajo de cada elemento usando los selectores antes y al pasar el mouse .

Código HTML: en esta sección, hemos creado un menú de barra de navegación simple usando una lista desordenada (ul).

<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
    <title>Animated Navbar </title>
</head>
  
<body>
    <h1>GeeksforGeeks</h1>
  
    <h3>Animated Navigation Bar Design</h3>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Contribute</a></li>
        <li><a href="#">Careers</a></li>
        <li><a href="#">About Us</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</body>
  
</html>

Código CSS: en esta sección, hemos utilizado algunas propiedades CSS para crear una atractiva barra de navegación animada.

  • Paso 1: Primero, hemos usado la propiedad flex para alinear nuestra lista de manera horizontal.
  • Paso 2: luego elimine toda la decoración del texto y proporcione el margen y los rellenos requeridos.
  • Paso 3: Luego hemos usado before selector para alinear una línea debajo de cada elemento manteniendo su ancho en 0.
  • Paso 4: ahora, use el cursor del mouse con el selector anterior para proporcionar ancho a la línea y transformarla en el eje x para obtener el efecto deseado.
<style>
    body {
        margin: 0;
        padding: 0;
        font-family: Arial, Helvetica, sans-serif;
    }
  
    h1 {
        color: green;
    }
  
    h1,
    h3 {
        text-align: center;
    }
  
    ul {
        margin: 0 10%;
        padding: 10px 0px 10px 100px;
        display: flex;
        background: green;
    }
  
    ul li {
        list-style: none;
        padding: 10px 20px;
  
    }
  
    ul li a {
        text-decoration: none;
        font-size: 24px;
        font-weight: bold;
        color: black;
        position: relative;
  
    }
  
    ul li a::before {
        content: "";
        width: 0px;
        height: 10px;
        background: black;
        position: absolute;
        top: 100%;
        left: 0;
        transition: .5s;
    }
  
    ul li a:hover::before {
        width: 50%;
        transform: translateX(100%);
    }
</style>

Código completo: en esta sección, combinaremos las dos secciones anteriores para crear una barra de navegación animada.

<!DOCTYPE html>
<html lang="en">
  
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content=
        "width=device-width, initial-scale=1.0">
    <title>Animated Navbar </title>
  
    <style>
        body {
            margin: 0;
            padding: 0;
            font-family: Arial, Helvetica, sans-serif;
        }
  
        h1 {
            color: green;
        }
  
        h1,
        h3 {
            text-align: center;
        }
  
        ul {
            margin: 0 10%;
            padding: 10px 0px 10px 100px;
            display: flex;
            background: green;
        }
  
        ul li {
            list-style: none;
            padding: 10px 20px;
  
        }
  
        ul li a {
            text-decoration: none;
            font-size: 24px;
            font-weight: bold;
            color: black;
            position: relative;
  
        }
  
        ul li a::before {
            content: "";
            width: 0px;
            height: 10px;
            background: black;
            position: absolute;
            top: 100%;
            left: 0;
            transition: .5s;
        }
  
        ul li a:hover::before {
            width: 50%;
            transform: translateX(100%);
        }
    </style>
</head>
  
<body>
    <h1>GeeksforGeeks</h1>
  
    <h3>Animated Navigation Bar Design</h3>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Contribute</a></li>
        <li><a href="#">Careers</a></li>
        <li><a href="#">About Us</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
</body>
  
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por sirohimukul1999 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 *