Ir al contenido principal

MEJOR Animación FORMULARIO Cohete HTML, CSS JS

En este tutorial, aprenderemos a crear una animación interactiva de un cohete con efecto de explosión usando HTML, CSS y JavaScript. La animación consistirá en una explosión inicial seguida del despegue de un cohete.

RESULTADO: 

## Estructura del Proyecto


1. HTML Base

Primero, necesitamos crear la estructura básica HTML:

```html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Rocket Launch Animation</title>

</head>

<body>

    <div class="container">

        <button onclick="launchRocket()">Launch Rocket! 🚀</button>

        <div class="rocket">

            <div class="rocket-body"></div>

            <div class="rocket-bottom"></div>

            <div class="flame"></div>

        </div>

        <div class="explosion"></div>

    </div>

</body>

</html>


2. Estilizado CSS


El CSS se divide en varias secciones importantes:


#### Estilos Base

```css

body {

    margin: 0;

    min-height: 100vh;

    display: flex;

    justify-content: center;

    align-items: center;

    background: linear-gradient(to bottom, #1a1a2e, #16213e);

    font-family: Arial, sans-serif;

    overflow: hidden;

}


.container {

    text-align: center;

    position: relative;

}

```


Estilo del Botón

```css

button {

    padding: 15px 30px;

    font-size: 18px;

    background: #4CAF50;

    color: white;

    border: none;

    border-radius: 5px;

    cursor: pointer;

    transition: transform 0.2s;

}


button:hover {

    transform: scale(1.05);

}

```


Diseño del Cohete

```css

.rocket {

    position: absolute;

    left: 50%;

    bottom: 100px;

    transform: translateX(-50%);

    width: 60px;

    height: 120px;

    display: none;

}


.rocket-body {

    width: 60px;

    height: 80px;

    background: #f44336;

    border-radius: 50% 50% 0 0;

}


.rocket-bottom {

    width: 60px;

    height: 40px;

    background: #9e9e9e;

    clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);

}

```


#### Efectos de Llama y Explosión

```css

.flame {

    width: 40px;

    height: 60px;

    background: #ff9800;

    position: absolute;

    bottom: -60px;

    left: 50%;

    transform: translateX(-50%);

    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);

    display: none;

}


.explosion {

    position: absolute;

    width: 200px;

    height: 200px;

    background: radial-gradient(circle, #ff9800, #f44336, transparent);

    border-radius: 50%;

    transform: translate(-50%, -50%);

    opacity: 0;

    display: none;

}



### 3. Animaciones CSS


@keyframes launch {

    0% {

        transform: translateY(0) translateX(-50%);

    }

    100% {

        transform: translateY(-1000px) translateX(-50%);

    }

}


@keyframes explode {

    0% {

        transform: translate(-50%, -50%) scale(0);

        opacity: 1;

    }

    100% {

        transform: translate(-50%, -50%) scale(2);

        opacity: 0;

    }

}


@keyframes flicker {

    0% { opacity: 0.8; }

    50% { opacity: 1; }

    100% { opacity: 0.8; }

}


.launching {

    display: block;

    animation: launch 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;

}


.exploding {

    display: block;

    animation: explode 0.5s ease-out forwards;

}


.flame.active {

    display: block;

    animation: flicker 0.1s infinite;

}



4. JavaScript para la Interactividad


```javascript

function launchRocket() {

    const rocket = document.querySelector('.rocket');

    const flame = document.querySelector('.flame');

    const explosion = document.querySelector('.explosion');

    const button = document.querySelector('button');


    // Ocultar botón y mostrar cohete

    button.style.display = 'none';

    rocket.style.display = 'block';


    // Iniciar con la explosión

    explosion.style.top = '80%';

    explosion.style.left = '50%';

    explosion.classList.add('exploding');


    // Después de 0.5 segundos, iniciar el despegue

    setTimeout(() => {

        flame.style.display = 'block';

        flame.classList.add('active');

        rocket.classList.add('launching');

    }, 500);


    // Reset después de 3 segundos

    setTimeout(() => {

        button.style.display = 'block';

        rocket.style.display = 'none';

        rocket.classList.remove('launching');

        explosion.classList.remove('exploding');

        flame.classList.remove('active');

    }, 3000);

}

```


## Explicación del Funcionamiento


1. **Estructura HTML**:

   - Contenedor principal para centrar todo

   - Botón para iniciar la animación

   - Estructura del cohete (cuerpo y base)

   - Elementos para la llama y explosión


2. **Estilos CSS**:

   - Uso de `position: absolute` para posicionar elementos

   - Gradientes y formas con `clip-path` para efectos visuales

   - Animaciones con `@keyframes` para movimiento suave


3. **Animaciones**:

   - `launch`: Mueve el cohete hacia arriba

   - `explode`: Crea el efecto de explosión

   - `flicker`: Hace que la llama parpadee


4. **JavaScript**:

   - Maneja la secuencia de eventos

   - Controla la temporización de las animaciones

   - Resetea la animación para poder repetirla


## Puntos Clave para Personalización


1. **Colores**: 

   - Modifica los valores hexadecimales en el CSS

   - El cohete usa `#f44336` (rojo) y `#9e9e9e` (gris)

   - La explosión usa `#ff9800` (naranja)


2. **Tiempo**:

   - La explosión dura 0.5 segundos

   - El despegue inicia 0.5 segundos después

   - La animación total dura 3 segundos


3. **Tamaños**:

   - Ajusta los valores de `width` y `height` para cambiar dimensiones

   - Modifica `transform: translateY()` para cambiar la altura del vuelo


## Conclusión


Esta animación demuestra el poder de CSS moderno y JavaScript para crear interacciones dinámicas. Combina diferentes técnicas de animación, temporización y efectos visuales para crear una experiencia atractiva.


Para mejorar la animación, podrías:

- Añadir efectos de sonido

- Incluir más partículas en la explosión

- Agregar efectos de humo

- Hacer el cohete más detallado

- Implementar diferentes tipos de explosiones

Comentarios

Entradas más populares de este blog

Arquitectura N-Capas GUÍA COMPLETA .NET Core

Entendiendo la Arquitectura Limpia (Clean Architecture) en .NET: Una Guía Completa La Arquitectura Limpia, también conocida como arquitectura N-Capas, es un patrón de diseño que nos ayuda a crear aplicaciones mantenibles, testables y escalables. En este artículo, exploraremos en detalle cómo implementar esta arquitectura en un proyecto .NET. Si quieres entenderlo más fácil y con código, te dejo este otro artículo:   Arquitectura Limpia explicado con patitos 🐤 ¿Qué es la Arquitectura Limpia? La Arquitectura Limpia es un conjunto de principios de diseño que nos ayuda a separar las responsabilidades en diferentes capas de nuestra aplicación. Cada capa tiene una responsabilidad específica y se comunica con las otras capas a través de interfaces bien definidas. Estructura del Proyecto Una típica estructura de proyecto en Arquitectura Limpia se ve así: ├── Controllers/ │   └── ProductController.cs ├── Domain/ │   ├── Models/ │   └── DTOs/ ├── Repository/ │...

Archivo Application.properties en SPRING BOOT

  Guía Completa: Application.properties en Spring Boot El archivo application.properties es una pieza fundamental en aplicaciones Spring Boot, actuando como el centro de configuración para todo tu proyecto. En esta guía, exploraremos sus características principales y cómo aprovecharlo al máximo. ¿Qué es application.properties? Es un archivo de configuración que permite definir diferentes parámetros y valores para tu aplicación Spring Boot sin necesidad de modificar el código fuente. Se ubica en src/main/resources y Spring Boot lo lee automáticamente al iniciar. Configuraciones Esenciales Configuración del Servidor # Puerto del servidor server.port = 8080 # Contexto de la aplicación server.servlet.context-path = /miapp Conexión a Base de Datos # MySQL spring.datasource.url = jdbc:mysql://localhost:3306/mibasededatos spring.datasource.username = usuario spring.datasource.password = contraseña spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver JPA y Hibernat...

Kubernets (K8S) - PRIMEROS pasos

¡Hola, amantes de la tecnología! 👋 Si has escuchado hablar de Kubernetes pero aún no sabes por dónde empezar, este artículo es para ti. 🚢 Kubernetes, también conocido como K8s, es una herramienta poderosa para la gestión de contenedores que puede parecer intimidante al principio. Pero no te preocupes, aquí te guiaremos paso a paso para que puedas dominar los conceptos básicos y empezar a desplegar tus propias aplicaciones en un clúster de Kubernetes. 🌐 Prepárate para descubrir cómo esta tecnología puede transformar la manera en que desarrollas y despliegas tus aplicaciones. ¡Vamos a sumergirnos en el mundo de Kubernetes! 💻🚀 Vamos hacer un listado para lo que vamos a necesitar instalar:  Docker Desktop  Install Docker Desktop on Windows | Docker Docs   Kubectl  Install Tools | Kubernetes   MiniCube  https://minikube.sigs.k8s.io/docs/start Scoop ( opcional para instalar Kubecolor)  Scoop   Kubecolor ( opcional para colores en PowerShell)  ...