Spaces:
Running
Running
| // Частицы на Canvas | |
| const canvas = document.getElementById('particle-canvas'); | |
| const ctx = canvas.getContext('2d'); | |
| canvas.width = window.innerWidth; | |
| canvas.height = window.innerHeight; | |
| const particles = []; | |
| for (let i = 0; i < 100; i++) { | |
| particles.push({ | |
| x: Math.random() * canvas.width, | |
| y: Math.random() * canvas.height, | |
| radius: Math.random() * 2 + 1, | |
| speed: Math.random() * 1 + 0.5, | |
| color: `hsl(${Math.random() * 360}, 100%, 50%)` | |
| }); | |
| } | |
| function animateParticles() { | |
| ctx.clearRect(0, 0, canvas.width, canvas.height); | |
| particles.forEach(p => { | |
| ctx.beginPath(); | |
| ctx.arc(p.x, p.y, p.radius, 0, Math.PI * 2); | |
| ctx.fillStyle = p.color; | |
| ctx.fill(); | |
| p.y -= p.speed; | |
| if (p.y < 0) p.y = canvas.height; | |
| }); | |
| requestAnimationFrame(animateParticles); | |
| } | |
| animateParticles(); | |
| // Нейро-анимация продукта | |
| document.addEventListener('mousemove', (e) => { | |
| const product = document.getElementById('ar-product'); | |
| const xAxis = (window.innerWidth / 2 - e.pageX) / 20; | |
| const yAxis = (window.innerHeight / 2 - e.pageY) / 20; | |
| product.style.transform = `perspective(1500px) rotateY(${xAxis}deg) rotateX(${yAxis}deg)`; | |
| }); | |
| // Голосовое управление и заказ | |
| function orderNow() { | |
| const msg = new SpeechSynthesisUtterance("Revolut активирован. Чистота начинается сейчас."); | |
| window.speechSynthesis.speak(msg); | |
| document.body.style.background = "radial-gradient(circle, #00ffcc, #000)"; | |
| setTimeout(() => { | |
| document.body.style.background = "#000"; | |
| }, 1000); | |
| } | |
| // Эффекты для подов | |
| function podEffect(element) { | |
| element.style.transform = "translateY(-20px) scale(1.1)"; | |
| element.style.boxShadow = "0 0 30px rgba(0, 255, 204, 0.7)"; | |
| } | |
| function podReset(element) { | |
| element.style.transform = "translateY(0) scale(1)"; | |
| element.style.boxShadow = "none"; | |
| } | |
| // Нейро-приветствие | |
| window.addEventListener('load', () => { | |
| if ('speechSynthesis' in window) { | |
| const msg = new SpeechSynthesisUtterance("Добро пожаловать в 2070. Активируй Revolut голосом: скажи 'Начать'."); | |
| window.speechSynthesis.speak(msg); | |
| } | |
| }); | |
| if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) { | |
| const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)(); | |
| recognition.lang = 'ru-RU'; | |
| recognition.continuous = true; | |
| recognition.onresult = (event) => { | |
| const command = event.results[event.results.length - 1][0].transcript.toLowerCase(); | |
| if (command.includes('начать') || command.includes('активировать')) { | |
| orderNow(); | |
| } | |
| }; | |
| recognition.start(); | |
| } |