ASSISTANT
Para reorganizar el código y mover los botones de "Ejercicios" y "Quiz" a la parte superior del contenedor y separarlos de los temas, así como para aplicar colores diferentes a esos botones, haré los siguientes ajustes:
1. **Colocar los botones al final de la sección de contenido**.
2. **Cambiar los colores de los botones de ejercicios y quiz**.
3. **Ajustar la disposición en el CSS para el nuevo estilo**.
A continuación, el código completo con las modificaciones solicitadas.
### 1. **HTML (`index.html`)**
```html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard - Clases de Inglés</title>
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
</head>
<body>
<div class="dashboard">
<header>
<h1>Dashboard de Clases de Inglés</h1>
</header>
<div class="container">
<nav class="menu">
<button onclick="showInfo('clase6')"><i class="fas fa-book-open"></i> Grado 6</button>
<button onclick="showInfo('clase7')"><i class="fas fa-book-open"></i> Grado 7</button>
<button onclick="showInfo('clase8')"><i class="fas fa-book-open"></i> Grado 8</button>
<button onclick="showInfo('clase9')"><i class="fas fa-book-open"></i> Grado 9</button>
</nav>
<main class="content">
<div id="infoContent" class="info">
<h2>Bienvenido a tu espacio de clases</h2>
<p>Selecciona un grado para ver más recursos.</p>
</div>
<div id="gradeButtonsContainer" class="grade-buttons"></div>
<div id="exerciseQuizButtons" class="exercise-quiz-buttons">
<div class="card exercise-button" onclick="openExercises('currentGrade')">
<i class="fas fa-pencil-alt"></i><p>Ejercicios</p>
</div>
<div class="card quiz-button" onclick="openQuiz('currentGrade')">
<i class="fas fa-question-circle"></i><p>Quiz</p>
</div>
</div>
</main>
</div>
</div>
<div id="videoModal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeModal()">×</span>
<div id="videoSection">
<iframe id="videoPlayer" src="" frameborder="0" allowfullscreen></iframe>
</div>
<div id="imageSection" class="image-container"></div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
```
### 2. **CSS (`styles.css`)**
```css
body {
font-family: 'Arial', sans-serif;
margin: 0;
background-color: #e9ecef;
}
.dashboard {
display: flex;
flex-direction: column;
height: 100vh;
}
header {
background-color: #007bff;
color: white;
padding: 20px;
text-align: center;
}
.container {
display: flex;
flex: 1;
}
.menu {
width: 220px;
background-color: #007bff;
padding: 15px 0;
display: flex;
flex-direction: column;
border-radius: 0;
box-shadow: none;
}
.menu button {
background-color: #28a745;
color: white;
border: none;
border-radius: 10px;
padding: 15px;
margin: 10px;
cursor: pointer;
font-size: 16px;
text-align: center;
display: flex;
align-items: center;
justify-content: center;
transition: background-color 0.3s, transform 0.2s;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
.menu button i {
margin-right: 5px;
transition: transform 0.3s;
}
.menu button:hover {
background-color: #218838;
transform: scale(1.05);
}
.menu button:hover i {
transform: scale(1.2);
}
.content {
flex: 1;
padding: 20px;
margin-left: 20px;
background-color: #f8f9fa;
border-radius: 5px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.info {
text-align: center;
}
.grade-buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-top: 20px;
}
.card {
background-color: #4CAF50;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
padding: 20px;
text-align: center;
transition: transform 0.2s, box-shadow 0.2s;
cursor: pointer;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
}
.card i {
font-size: 32px;
margin-bottom: 10px;
color: white;
transition: color 0.3s;
}
.card:hover i {
color: #FFD700;
}
.card p {
margin: 0;
font-size: 18px;
font-family: 'Arial', sans-serif;
color: white;
}
/* Estilos para los botones de ejercicios y quiz */
.exercise-quiz-buttons {
display: flex;
justify-content: space-around;
margin-top: 20px;
}
.exercise-button {
background-color: #007bff; /* Color azul para Ejercicios */
}
.quiz-button {
background-color: #ffc107; /* Color amarillo para Quiz */
}
/* Estilos para el modal */
.modal {
display: none;
position: fixed;
z-index: 1000;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.5);
}
.modal-content {
background-color: #fefefe;
margin: 10% auto;
padding: 20px;
border: 1px solid #888;
width: 60%;
max-width: 800px;
border-radius: 10px;
}
#videoSection {
text-align: center;
}
#videoPlayer {
width: 100%;
height: 200px;
}
.image-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 20px;
margin-top: 20px;
}
.image-card {
background-color: #f0f8ff;
border-radius: 8px;
padding: 10px;
text-align: center;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.image-card:hover {
transform: translateY(-5px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}
.image-card img {
width: 100%;
height: auto;
border-radius: 4px;
}
.image-card p {
margin: 10px 0 0 0;
font-size: 14px;
color: #333;
font-family: 'Arial', sans-serif;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
```
### 3. **JavaScript (`script.js`)**
Aquí se mantiene la función `showInfo` y sus métodos asociados, asegurándonos de que los botones para ejercicios y quiz estén debidamente referenciados.
```javascript
function showInfo(grado) {
const infoContent = document.getElementById("infoContent");
const gradeButtonsContainer = document.getElementById("gradeButtonsContainer");
const exerciseQuizButtons = document.getElementById("exerciseQuizButtons");
let contenido = "";
let buttonsHtml = "";
switch (grado) {
case 'clase6':
contenido = "<h2>Clases de Grado 6</h2><p>Recursos y materiales para el grado 6.</p>";
buttonsHtml = `
<div class="card" onclick="openVideo('elementosDelSalon')"><i class="fas fa-chalkboard-teacher"></i><p>Elementos del salón</p></div>
<div class="card" onclick="openVideo('elementosDelCuerpoHumano')"><i class="fas fa-user"></i><p>Elementos del cuerpo humano</p></div>
<div class="card" onclick="openVideo('numeros')"><i class="fas fa-hashtag"></i><p>Los Números</p></div>
<div class="card" onclick="openVideo('disciplinasDeportivas')"><i class="fas fa-futbol"></i><p>Disciplinas deportivas</p></div>
<div class="card" onclick="openVideo('pronombres')"><i class="fas fa-people-arrows"></i><p>Los Pronombres</p></div>
<div class="card" onclick="openVideo('animales')"><i class="fas fa-paw"></i><p>Animales</p></div>
<div class="card" onclick="openVideo('articulos')"><i class="fas fa-archive"></i><p>Los Artículos</p></div>
<div class="card" onclick="openVideo('colores')"><i class="fas fa-paint-brush"></i><p>Los Colores</p></div>
`;
break;
case 'clase7':
contenido = "<h2>Clases de Grado 7</h2><p>Recursos y materiales para el grado 7.</p>";
buttonsHtml = `
<div class="card" onclick="openVideo('algunRecurso1')"><i class="fas fa-book-open"></i><p>Lecturas Adicionales</p></div>
<div class="card" onclick="openVideo('algunRecurso2')"><i class="fas fa-thumbs-up"></i><p>Ejercicios Interactivos</p></div>
<div class="card" onclick="openVideo('algunRecurso3')"><i class="fas fa-headphones-alt"></i><p>Práctica Auditiva</p></div>
<div class="card" onclick="openVideo('algunRecurso4')"><i class="fas fa-sticky-note"></i><p>Actividades de Escritura</p></div>
`;
break;
case 'clase8':
contenido = "<h2>Clases de Grado 8</h2><p>Recursos y materiales para el grado 8.</p>";
buttonsHtml = `
<div class="card" onclick="openVideo('algunRecurso1')"><i class="fas fa-book-reader"></i><p>Literatura Clásica</p></div>
<div class="card" onclick="openVideo('algunRecurso2')"><i class="fas fa-pen-nib"></i><p>Redacción Avanzada</p></div>
<div class="card" onclick="openVideo('algunRecurso3')"><i class="fas fa-microphone-alt"></i><p>Debates</p></div>
<div class="card" onclick="openVideo('algunRecurso4')"><i class="fas fa-calendar-alt"></i><p>Proyectos y Tareas</p></div>
`;
break;
case 'clase9':
contenido = "<h2>Clases de Grado 9</h2><p>Recursos y materiales para el grado 9.</p>";
buttonsHtml = `
<div class="card" onclick="openVideo('algunRecurso1')"><i class="fas fa-clipboard-list"></i><p>Preparación para Exámenes</p></div>
<div class="card" onclick="openVideo('algunRecurso2')"><i class="fas fa-equalizer"></i><p>Análisis de Textos</p></div>
<div class="card" onclick="openVideo('algunRecurso3')"><i class="fas fa-bookmark"></i><p>Lecturas Críticas</p></div>
<div class="card" onclick="openVideo('algunRecurso4')"><i class="fas fa-laptop-code"></i><p>Recursos Digitales</p></div>
`;
break;
default:
contenido = "<h2>Error</h2><p>Grado no encontrado.</p>";
buttonsHtml = ""; // No hay botones si hay un error
}
infoContent.innerHTML = contenido;
gradeButtonsContainer.innerHTML = buttonsHtml;
// Cambiar "currentGrade" al grado seleccionado
const exerciseButton = document.querySelector('.exercise-button');
const quizButton = document.querySelector('.quiz-button');
exerciseButton.setAttribute('onclick', `openExercises('${grado}')`);
quizButton.setAttribute('onclick', `openQuiz('${grado}')`);
}
function openExercises(grado) {
// Lógica para abrir ejercicios según el grado seleccionado
alert("Ejercicios para " + grado);
}
function openQuiz(grado) {
// Lógica para abrir quiz según el grado seleccionado
alert("Quiz para " + grado);
}
function openVideo(videoId) {
const contentData = {
elementosDelSalon: {
videoUrl: "https://www.youtube.com/embed/xR4btoE9IeA?autoplay=1",
images: [
{ src: "imagenes/salon/borrador.png", name: "Eraser" },
{ src: "imagenes/salon/cuaderno.png", name: "Notebook" },
{ src: "imagenes/salon/escritorio.png", name: "Mesa" },
{ src: "imagenes/salon/lapiz.png", name: "Pencil" },
{ src: "imagenes/salon/libro.png", name: "Book" },
{ src: "imagenes/salon/pizarra.png", name: "Whiteboard" },
{ src: "imagenes/salon/silla.png", name: "Chair" },
{ src: "imagenes/salon/tijeras.png", name: "Scissors" },
{ src: "imagenes/salon/carpeta.png", name: "Folder" },
{ src: "imagenes/salon/Regla.png", name: "Ruler" },
{ src: "imagenes/salon/Bolígrafo.png", name: "Pen" },
{ src: "imagenes/salon/Pegamento.png", name: "Glue" },
{ src: "imagenes/salon/Marcador.png", name: "Marker" },
{ src: "imagenes/salon/Sacapuntas.png", name: "Sharpener" },
{ src: "imagenes/salon/mochila.png", name: "Backpack" }
]
},
elementosDelCuerpoHumano: {
videoUrl: "https://www.youtube.com/embed/6z35B40Gxhw?autoplay=1",
images: [
{ src: "imagenes/cuerpo/Boca.png", name: "Mouth" },
{ src: "imagenes/cuerpo/Brazos.jpg", name: "Arms" },
{ src: "imagenes/cuerpo/Dientes.png", name: "Teeth" },
{ src: "imagenes/cuerpo/cabeza.png", name: "Head" },
{ src: "imagenes/cuerpo/cara.png", name: "Face" },
{ src: "imagenes/cuerpo/cuello.png", name: "Neck" },
{ src: "imagenes/cuerpo/Lengua.png", name: "Tongue" },
{ src: "imagenes/cuerpo/hombro.jpg", name: "Shoulder" },
{ src: "imagenes/cuerpo/Nariz.png", name: "Nose" },
{ src: "imagenes/cuerpo/Ojos.png", name: "Eyes" },
{ src: "imagenes/cuerpo/Orejas.png", name: "Ears" },
{ src: "imagenes/cuerpo/Piernas.jpg", name: "Legs" },
{ src: "imagenes/cuerpo/Dedos.png", name: "Fingers" },
{ src: "imagenes/cuerpo/Espalda.png", name: "Back" },
{ src: "imagenes/cuerpo/Rodillas.png", name: "Knees" }
]
},
numeros: {
videoUrl: "https://www.youtube.com/embed/jlC2l0kqocE?autoplay=1",
images: [
{ src: "imagenes/numeros/1.png", name: "One" },
{ src: "imagenes/numeros/2.png", name: "Two" },
{ src: "imagenes/numeros/3.png", name: "Three" },
{ src: "imagenes/numeros/4.png", name: "Four" },
{ src: "imagenes/numeros/5.png", name: "Five" },
{ src: "imagenes/numeros/6.png", name: "Six" },
{ src: "imagenes/numeros/7.png", name: "Seven" },
{ src: "imagenes/numeros/8.png", name: "Eight" },
{ src: "imagenes/numeros/9.png", name: "Nine" },
{ src: "imagenes/numeros/10.png", name: "Ten" },
{ src: "imagenes/numeros/Veinte.png", name: "Twenty" },
{ src: "imagenes/numeros/Treinta.png", name: "Thirty" },
{ src: "imagenes/numeros/Cuarenta.png", name: "Forty" },
{ src: "imagenes/numeros/Cincuenta.png", name: "Fifty" },
{ src: "imagenes/numeros/Cien.png", name: "One Hundred" }
]
},
disciplinasDeportivas: {
videoUrl: "https://www.youtube.com/embed/xR4btoE9IeA?autoplay=1",
images: [
{ src: "imagenes/deporte/Baloncesto.png", name: "Basketball" },
{ src: "imagenes/deporte/Béisbol.png", name: "Baseball" },
{ src: "imagenes/deporte/Ciclismo.png", name: "Cycling" },
{ src: "imagenes/deporte/Fútbol.png", name: "Soccer" },
{ src: "imagenes/deporte/Golf.png", name: "Golf" },
{ src: "imagenes/deporte/Hockey.png", name: "Ice Hockey" },
{ src: "imagenes/deporte/Natación.png", name: "Swimming" },
{ src: "imagenes/deporte/Tenis.png", name: "Tennis" },
{ src: "imagenes/deporte/Tiroconarco.png", name: "Archery" },
{ src: "imagenes/deporte/Karate.png", name: "Karate" },
{ src: "imagenes/deporte/Esquí.png", name: "Skiing" },
{ src: "imagenes/deporte/Boxeo.png", name: "Boxing" },
{ src: "imagenes/deporte/Rugby.png", name: "Rugby" },
{ src: "imagenes/deporte/Gimnasia.png", name: "Gymnastics" }
]
},
pronombres: {
videoUrl: "https://www.youtube.com/embed/D0RgdfHXFKE?autoplay=1",
images: [
{ src: "imagenes/Pronombres/Yo.png", name: "I" },
{ src: "imagenes/Pronombres/Tu.png", name: "You" },
{ src: "imagenes/Pronombres/el.jpg", name: "He, She, It" },
{ src: "imagenes/Pronombres/Ella.jpg", name: "She" },
{ src: "imagenes/Pronombres/Ustedes.jpg", name: "You" },
{ src: "imagenes/Pronombres/Nosotros.jpg", name: "We" },
{ src: "imagenes/Pronombres/Ellos.jpg", name: "They" }
]
},
animales: {
videoUrl: "https://www.youtube.com/embed/nuseNHGVoic?autoplay=1",
images: [
{ src: "image16.jpg", name: "Perro" },
{ src: "image17.jpg", name: "Gato" },
{ src: "image18.jpg", name: "Pájaro" }
]
},
articulos: {
videoUrl: "https://www.youtube.com/embed/eiQMa7x-ZEk?autoplay=1",
images: [
{ src: "image19.jpg", name: "El" },
{ src: "image20.jpg", name: "La" },
{ src: "image21.jpg", name: "Los" }
]
},
colores: {
videoUrl: "https://www.youtube.com/embed/2n7CXoRMsG4?autoplay=1",
images: [
{ src: "image22.jpg", name: "Rojo" },
{ src: "image23.jpg", name: "Azul" },
{ src: "image24.jpg", name: "Verde" }
]
}
};
const videoUrl = contentData[videoId].videoUrl;
document.getElementById('videoPlayer').src = videoUrl;
const imageContainer = document.getElementById('imageSection');
imageContainer.innerHTML = '';
const images = contentData[videoId].images;
images.forEach(image => {
const imgDiv = document.createElement('div');
imgDiv.className = 'image-card';
imgDiv.innerHTML = `<img src="${image.src}" alt="${image.name}"><p>${image.name}</p>`;
imageContainer.appendChild(imgDiv);
});
document.getElementById('videoModal').style.display = 'block';
}
function closeModal() {
document.getElementById('videoModal').style.display = 'none';
document.getElementById('videoPlayer').src = ''; // Detener el video al cerrar el modal
}
```
### Descripción de los Cambios Realizados
1. **Botones de Ejercicios y Quiz**:
- Ahora están colocados en la parte superior de la sección de contenido, separados de los temas y con el contenedor `exercise-quiz-buttons`.
- Se ha utilizado `flexbox` para distribuirlos a ambos lados.
2. **Colores Diferentes**:
- El botón de "Ejercicios" tiene un color azul (`#007bff`).
- El botón de "Quiz" tiene un color amarillo (`#ffc107`).
3. **Código JavaScript (showInfo)**:
- Se han ajustado las llamadas de los botones `onclick` para que se refiera al grado correcto cuando se muestra la información de un grado.
### Conclusión
Con estos cambios, tus botones para "Ejercicios" y "Quiz" están ahora organizados en la parte superior derecha, con colores diferenciados, siguiendo el diseño que solicitaste. Si tienes más ajustes que hacer o cualquier otra pregunta, ¡no dudes en decirlo!