< html lang = "es" > < head > < meta charset = "UTF-8" > < title > Grupo 16 < script src = "https://cdn.jsdelivr.net/npm/xlsx@0.18.5/dist/xlsx.full.min.js" > < link href = "https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel = "stylesheet" > < link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/foundation-sites@6.7.5/dist/css/foundation.min.css" > < link href = "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel = "stylesheet" > < style > * { margin : 0 ; box-sizing : border-box; } html { scroll-behavior : smooth; } section { scroll-margin-top : 80px ; /* Ajusta este valor al alto de tu navbar + el margen que quieras */ } body { font-family : 'Segoe UI' , Tahoma, Geneva, Verdana, sans-serif; background-color : #f9f9f9; margin : 0 ; padding-inline-start : 20px ; } /* Estilos de la navbar */ .navbar { position : fixed; top : 0 ; left : 0 ; right : 0 ; z-index : 999 ; display : flex; justify-content : space-between; align-items : center; height : 70px ; background-color : white; padding : 0 40px ; } .logo img { height : 50px ; } .menu { display : flex; height : 100% ; } .menu a { position : relative; display : flex; align-items : center; height : 100% ; padding : 0 20px ; text-decoration : none; font-weight : bold; color : #555; z-index : 1 ; } .menu a::before { content : '' ; position : fixed; /* importante: ocupa toda la pantalla horizontalmente */ left : 0 ; top : 0 ; width : 100vw ; height : 70px ; background-color : rgba( 0 , 0 , 0 , 0.05 ); z-index : -1 ; opacity : 0 ; pointer-events : none; transition : opacity 0.3s ; } .menu a:hover::before { top : inherit; transform : translateY( -100% ); /* reseteamos si top no funciona */ opacity : 1 ; } .menu a:hover { color : #004080; } .menu a.active { color : #004080; } /* Estilos para el home slide */ .home-slide { position : relative; width : 100% ; height : 400px ; background-color : #333; color : white; display : flex; justify-content : center; align-items : center; overflow : hidden; } .home-slide .slide { position : absolute; width : 100% ; height : 100% ; background-image : url( './assets/img/facultad.jpg' ); /* Reemplaza esta ruta con tu propia imagen */ background-size : cover; background-position : center; transition : opacity 1s ease; opacity : 1 ; } .home-slide .slide.fade { opacity : 0 ; } .home-slide .text { font-size : 2rem ; font-weight : bold; z-index : 1 ; color : white; } .logo { width : 150px ; height : auto; } .titulo { font-weight : bold; } /* Estilos para el botón */ #goTopBtn { position : fixed; bottom : 40px ; right : 40px ; z-index : 1000 ; background-color : #004080; color : white; border : none; padding : 12px 16px ; border-radius : 50% ; font-size : 20px ; cursor : pointer; box-shadow : 0 4px 6px rgba( 0 , 0 , 0 , 0.2 ); transition : opacity 0.3s ease; display : none; } #goTopBtn:hover { background-color : #0056b3; } footer { background-color : #f8f9fa; padding : 20px 0 ; text-align : center; font-size : 14px ; color : #6c757d; border-top : 1px solid #dee2e6; } footer p { margin : 0 ; } footer strong { color : #343a40; } < body > < nav class = "navbar" > < div class = "logo" > < img src = "./assets/img/logo-grupo.jpg" alt = "Logo del grupo 16 sc" > < div class = "menu" > < a href = "#" class = "active" > INICIO < a href = "#curriculum" > CURRICULUM < a href = "#musica-video" > MUSICA Y VIDEOS < a href = "#estadistica" > ESTADISTICA < a href = "#contacto" > CONTACTOS < div class = "home-slide" > < div class = "slide" id = "slide1" > < div class = "slide fade" id = "slide2" > < div class = "text" > Bienvenidos a Nuestro Sitio Web < div id = "contacto" class = "grid-container mt-5" > < div class = "grid-x grid-padding-x" > < div class = "cell medium-8 medium-offset-2" > < div class = "card-panel z-depth-3" > < h4 class = "center-align" > Formulario de Contacto < form > < div class = "input-field" > < input id = "nombre" type = "text" class = "validate" required > < label for = "nombre" > Nombre < div class = "input-field" > < input id = "email" type = "email" class = "validate" required > < label for = "email" > Correo Electrónico < div class = "input-field" > < input id = "celular" type = "tel" class = "validate" required > < label for = "celular" > Celular < div class = "input-field" > < input id = "fecha" type = "date" class = "validate" required > < label for = "fecha" class = "active" > Fecha de Nacimiento < div class = "input-field" > < select id = "pais" required > < option value = "" disabled selected > Selecciona tu país < option value = "ag" > Antigua y Barbuda < option value = "ar" > Argentina < option value = "bs" > Bahamas < option value = "bb" > Barbados < option value = "bz" > Belice < option value = "bo" > Bolivia < option value = "br" > Brasil < option value = "ca" > Canadá < option value = "cl" > Chile < option value = "co" > Colombia < option value = "cr" > Costa Rica < option value = "cu" > Cuba < option value = "dm" > Dominica < option value = "ec" > Ecuador < option value = "sv" > El Salvador < option value = "us" > Estados Unidos < option value = "gd" > Granada < option value = "gt" > Guatemala < option value = "gy" > Guyana < option value = "ht" > Haití < option value = "hn" > Honduras < option value = "jm" > Jamaica < option value = "mx" > México < option value = "ni" > Nicaragua < option value = "pa" > Panamá < option value = "py" > Paraguay < option value = "pe" > Perú < option value = "do" > República Dominicana < option value = "kn" > San Cristóbal y Nieves < option value = "lc" > Santa Lucía < option value = "vc" > San Vicente y las Granadinas < option value = "sr" > Surinam < option value = "tt" > Trinidad y Tobago < option value = "uy" > Uruguay < option value = "ve" > Venezuela < label for = "pais" > País < div class = "file-field input-field" > < div class = "btn blue" > < span > Subir Archivo < input type = "file" accept = "image/*,video/*" required > < div class = "file-path-wrapper" > < input class = "file-path validate" type = "text" placeholder = "Selecciona una imagen o video" > < div class = "center-align" > < button class = "btn waves-effect waves-light blue" type = "submit" > Enviar < button id = "goTopBtn" title = "Ir arriba" > ↑ < footer > < p > © UAGRM - 2025 Todos los derechos reservados. Desarrollado por el alumno < strong > Luis Enrique Orellana Zapata . < p >< strong > Tecnologías Web - Grupo 16 sc. < script src = "https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" > < script src = "https://cdn.jsdelivr.net/npm/foundation-sites@6.7.5/dist/js/foundation.min.js" > < script src = "https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js" > < script > // Inicializar los select de Materialize document.addEventListener( 'DOMContentLoaded' , function () { var elems = document.querySelectorAll( 'select' ); M.FormSelect.init(elems); }); < script > document.addEventListener( 'DOMContentLoaded' , function () { // Inicializar selects de Materialize var selects = document.querySelectorAll( 'select' ); M.FormSelect.init(selects); // Validación del archivo const form = document.querySelector( 'form' ); const fileInput = form.querySelector( 'input[type="file"]' ); form.addEventListener( 'submit' , function (e) { const file = fileInput.files[ 0 ]; if (file) { const fileType = file.type; if (!fileType.startsWith( "image/" ) && !fileType.startsWith( "video/" )) { e.preventDefault(); alert( "Solo se permiten archivos de imagen o video." ); fileInput.value = '' ; // Limpiar archivo no válido } } }); });