Ejercicio JS – Ventana emergente control de edad

0
(0)

Publicado

Aviso importante web en obras

Es posible que el contenido que estás visualizando tenga un formato un poco raro o que se haya perdido algún contenido. Esto se debe a que en 2023/09 decidí renovar la página y con más de 1000 escritos el trabajo de irlos revisando uno por uno es agotador. Poco a poco iré corrigiendo todos los contenidos. ¡Gracias por la comprensión!

Portada Ejercicio JS control de accesos mayores edad

En este ejercicio vamos a aplicar los conceptos de:

  • Llamada a nodos del documento web.
  • Asignación de eventos mediante javascript.
  • Modificar el CSS mediante javascript.

A nivel de CSS vamos a practicar los conceptos de :

  • Centrado horizontal y vertical de una capa.
  • Propiedad opacity.
  • Posicionamiento fijo y absoluto de cajas.

Vayamos al ejercicio.
Ejercicio JS - Ventana emergente control de edad 1

Enunciado

Dado un documento html que únicamente contiene texto de tipo Lorem Ipsum hacer que cuando se cargue el documento haga salir una ventana emergente que pregunte a los usuarios si son mayores de edad o no.

  • En caso de ser mayores de edad la venta emergente desaparece y el texto de fondo pasa a verse con claridad.
  • En caso de no ser mayor de edad el usuario es redirigido a otra página.

Como requisitos:

  • La ventana sólo se cerrará si se hace click en algún botón.
  • Por mucho scroll que haga el usuario la ventana emergente no desaparece si no se selecciona alguna opción.

Si lo prefieres puedes usar este documento como punto de partida.

Solución del ejercicio

La idea es crear un div centrado verticalmente y horizontalmente con posicionamiento fijo de dimensiones 400px x 300px y el contenido de la imagen.

El contenido del documento web estará atrapado dentro de una capa, de modo que inicialmente tendrá definida la propiedad opacity.

Cuando se haga click en la opción de mayor de 18 años se ocultará la capa y se quitará el opacity inicial.

[vc_custom_heading text=»¿Como queda el documento css?» font_container=»tag:h3|text_align:left» use_theme_fonts=»yes»]

*{
    box-sizing:border-box;
    margin:0;
    padding:0; 
    }

    #container{
    opacity:.3;
    }

    .emergente{
        width:400px;
        height:200px;
        position:fixed;
        background-color:#FFFAFA;
        top:50%;
        left:50%;
        margin-left:-200px;
        margin-top:-100px;
        border:1px solid #000;
        border-radius:10px;
        padding:20px;
        text-align:center;
        box-shadow: 10px 10px 10px #ccc;
    }

    .emergente p{
        font-size:24px;
    }

    .emergente .boton{
        font-size:18px;
        padding:10px;
        border:1px solid #000;
        border-radius:5px;
        display:inline-block;
        width:150px;
        margin-top:32px;
        box-shadow:5px 5px 5px #ccc;
    }
    .menor{background-color:#FAF0E6;}
    .mayor{background-color:#F5F5DC;}
    .menor:hover{background-color:#ff0000;}
    .mayor:hover{background-color:#00ff00;}

[vc_custom_heading text=»¿Como queda el documento html?» font_container=»tag:h3|text_align:left» use_theme_fonts=»yes»]

<div id="container">...</div> <!--100 párrafos con contenido lorem ipsum-->
        
        <div class="emergente">
        <p>Debes ser mayor de edad para poder visitar este sitio web</p>
        <div class="boton menor">Tengo menos de 18 años</div>
        <div class="boton mayor">Soy mayor de edad</div>

</div>

[vc_custom_heading text=»¿Como queda el JS?» font_container=»tag:h3|text_align:left» use_theme_fonts=»yes»]

window.onload = init;
    function init(){
        document.querySelector(".emergente .menor").addEventListener("click",adios);
        document.querySelector(".emergente .mayor").addEventListener("click",hola);
    }
        
    function adios(){
        location.href="https://francescricart.com";
    }    
    function hola(){
        document.querySelector(".emergente").style.display="none";
        document.querySelector("#container").style.opacity="1";
    }

Si juntamos todas las piezas resolvemos el ejercicio.

Podéis descargarlo en este enlace.¡Hola!

Querido lector,

¡Si te ha gustado este contenido te animo a seguirme en mi perfil de empresa de Linkedin!

Deja una respuesta

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