WEBLEB
Início
Editor
Entrar
Pro
Português
English
Français
Español
Português
Deutsch
Italiano
हिंदी
Trecho HTML de animação de carregamento CSS
447
ByBy.inc
Abrir no Editor
Publique Seu Código
Recomendado
23 November 2024
Animação Star Trails
13 June 2025
Um Código de Metehan
26 August 2025
Site de portfólio turco: HTML, CSS, JS, Tailwind
HTML
Copy
CSS
Copy
/* CSS Foundation */ body { background-color: #272822; display: flex; align-items: center; justify-content: center; height: 100vh; overflow: hidden; } .codigo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: #272822; color: #F8F8F2; font-family: 'Consolas', 'Monaco', monospace; font-size: 18px; padding: 20px; border-radius: 8px; white-space: pre-line; text-align: left; line-height: 1.6; max-height: 25%; min-width: 100%; width: 100%; overflow-y: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .selector { color: #F92672; } .property { color: #66D9EF; } .value-number { color: #AE81FF; } .value-string { color: #E6DB74; } .value-color { color: #A6E22E; } .brace { color: #F8F8F2; } .comment { color: #75715E; } .function { color: #A6E22E; } .animation-container { position: absolute; top: 75%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 100%; height: 50%; overflow: hidden; background: transparent; } /* Animação: Phantom Loading */ .animation-container { animation: spin 2s linear infinite; } @keyframes spin { 0% { /* Comentário: A primeira iteração é uma representação da ansiedade, com elementos dispersos e sem sentido. */ transform: translate(-50%, -50%) scale(1); } 50% { /* Comentário: No meio da animação, os elementos começam a se organizar e formar uma falsa sensação de ordem. */ transform: translate(-50%, -50%) scale(1.1); } 100% { /* Comentário: Na última iteração, a ansiedade retorna e os elementos se dispersam novamente. */ transform: translate(-50%, -50%) scale(0.9); } } /* Elementos de Loading animados */ .animation-container::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100px; height: 100px; border-radius: 50%; border: 2px solid #F8F8F2; box-shadow: 0 0 20px rgba(255, 255, 255, 0.5); animation: loading 2s ease-in-out infinite; } @keyframes loading { 0% { transform: translate(-50%, -50%) scale(1); border-width: 2px; } 50% { transform: translate(-50%, -50%) scale(1.2); border-width: 1px; } 100% { transform: translate(-50%, -50%) scale(1); border-width: 2px; } } .animation-container::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50px; height: 50px; border-radius: 50%; background-color: #A6E22E; box-shadow: 0 0 10px rgba(255, 255, 255, 0.2); animation: pulse 2s ease-in-out infinite; } @keyframes pulse { 0% { transform: translate(-50%, -50%) scale(1); transform-origin: center; } 50% { transform: translate(-50%, -50%) scale(1.1); transform-origin: center; } 100% { transform: translate(-50%, -50%) scale(1); transform-origin: center; } } /* CSS para a barra de código */ .codigo::before { content: ''; font-size: 14px; color: #75715E; } /* CSS para a barra de código que irá renderizar a animação */ .codigo { position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: #272822; color: #F8F8F2; font-family: 'Consolas', 'Monaco', monospace; font-size: 18px; padding: 20px; border-radius: 8px; white-space: pre-line; text-align: left; line-height: 1.6; max-height: 25%; min-width: 100%; width: 100%; overflow-y: hidden; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); } .selector { color: #F92672; } .property { color: #66D9EF; } .value-number { color: #AE81FF; } .value-string { color: #E6DB74; } .value-color { color: #A6E22E; } .brace { color: #F8F8F2; } .comment { color: #75715E; } .function { color: #A6E22E; } .codigo { color: #F8F8F2; } .codigo .selector { color: #F92672; } .codigo .property { color: #66D9EF; } .codigo .value-number { color: #AE81FF; } .codigo .value-string { color: #E6DB74; } .codigo .value-color { color: #A6E22E; } .codigo .brace { color: #F8F8F2; } .codigo .comment { color: #75715E; } .codigo .function { color: #A6E22E; }
JS
Copy
const canvas = document.getElementById('matrixCanvas'); const ctx = canvas.getContext('2d'); function resizeCanvas() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; } resizeCanvas(); window.addEventListener('resize', resizeCanvas); const matrixChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()'; const fontSize = 16; const columns = canvas.width / fontSize; const drops = Array.from({ length: columns }).fill(1); function draw() { ctx.fillStyle = 'rgba(0, 0, 0, 0.05)'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#0f0'; ctx.font = `${fontSize}px monospace`; drops.forEach((y, i) => { const text = matrixChars[Math.floor(Math.random() * matrixChars.length)]; const x = i * fontSize; ctx.fillText(text, x, y * fontSize); if (y * fontSize > canvas.height && Math.random() > 0.975) { drops[i] = 0; } drops[i]++; }); } setInterval(draw, 50);