
- 1. Introducción a JS
- 2. Variables y Constantes
- 3. Tipos de datos
- 4. Operadores Aritméticos
- 5. Operadores de Asignación
- 6. Operadores de Comparación
- 7. Operadores Lógicos
- 8. Operador Ternario
- 9. Operadores Avanzados
- 10. Estructuras de Control
- 11. Condicionales
- ✚ Ejercicio 1: Operaciones
- ▭ Ejercicio 2: Calcular Área Rectángulo
- ✉ Ejercicio 3: Generador de mensaje
- ⌨ Ejercicio 4: Detector de teclas presionadas
1
2
3
4
5
6
index.html
Dado 3D
1
2
3
4
5
6
styles.css
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
background: #000000;
font-family: Arial, sans-serif;
}
.scene {
width: 200px;
height: 200px;
perspective: 1000px;
}
.cube {
width: 100%;
height: 100%;
position: relative;
transform-style: preserve-3d;
transform: rotateX(0deg) rotateY(0deg);
transition: transform 1s ease;
}
.face {
position: absolute;
width: 200px;
height: 200px;
background: #000000;
border: 2px solid yellow;
border-radius: 10px;
display: flex;
justify-content: center;
align-items: center;
color: yellow;
font-size: 5rem;
font-weight: bold;
}
.front { transform: rotateY(0deg) translateZ(100px); }
.back { transform: rotateY(180deg) translateZ(100px); }
.right { transform: rotateY(90deg) translateZ(100px); }
.left { transform: rotateY(-90deg) translateZ(100px); }
.top { transform: rotateX(90deg) translateZ(100px); }
.bottom { transform: rotateX(-90deg) translateZ(100px); }
script.js
const dice = document.getElementById('dice');
let currentX = 0;
let currentY = 0;
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
dice.addEventListener('click', () => {
const randomX = getRandomInt(1, 4) * 90;
const randomY = getRandomInt(1, 4) * 90;
currentX += randomX;
currentY += randomY;
dice.style.transform = `rotateX(${currentX}deg) rotateY(${currentY}deg)`;
});