diff --git a/Profice WebSite/index.html b/Profice WebSite/index.html index c72a8c7..605ed12 100644 --- a/Profice WebSite/index.html +++ b/Profice WebSite/index.html @@ -181,6 +181,18 @@

Rufen Sie jetzt an und erleben Sie, wie unsere KI Ihr Anliegen aufnimmt und verarbeitet.

Jetzt anrufen Kostenlos · Keine Wartezeit · 24/7 + + +
+
+
+
+
+
+
+
+
+
diff --git a/Profice WebSite/scripts/script.js b/Profice WebSite/scripts/script.js index 631eee2..c6158c7 100644 --- a/Profice WebSite/scripts/script.js +++ b/Profice WebSite/scripts/script.js @@ -1,13 +1,57 @@ /** * Main Script - Profice Website * All API calls go through server-side PHP - * Includes fallback for local file access (no server) * * @version 2.1.0 */ document.addEventListener("DOMContentLoaded", function() { + // ========================================== + // SOUND VISUALIZATION ANIMATION + // ========================================== + + function initSoundVisualization() { + const soundVisualization = document.getElementById('soundVisualization'); + const demoPhoneBtn = document.getElementById('demoPhoneBtn'); + + if (soundVisualization && demoPhoneBtn) { + // Start animation on hover + demoPhoneBtn.addEventListener('mouseenter', () => { + soundVisualization.classList.add('active'); + }); + + demoPhoneBtn.addEventListener('mouseleave', () => { + soundVisualization.classList.remove('active'); + }); + + // Toggle animation on click/touch + demoPhoneBtn.addEventListener('click', (e) => { + e.preventDefault(); + soundVisualization.classList.toggle('active'); + + // Simulate call action after a brief delay + setTimeout(() => { + window.location.href = demoPhoneBtn.href; + }, 500); + }); + + // Touch support for mobile + demoPhoneBtn.addEventListener('touchstart', (e) => { + e.preventDefault(); + soundVisualization.classList.add('active'); + }); + + demoPhoneBtn.addEventListener('touchend', () => { + setTimeout(() => { + soundVisualization.classList.remove('active'); + }, 1000); + }); + } + } + + initSoundVisualization(); + // Use absolute path from site root const API_ENDPOINT = '/scripts/add/send.php'; const isLocalFile = window.location.protocol === 'file:'; diff --git a/Profice WebSite/style/design.css b/Profice WebSite/style/design.css index ecfc37e..9a3c32a 100644 --- a/Profice WebSite/style/design.css +++ b/Profice WebSite/style/design.css @@ -1,3 +1,48 @@ +/* Sound Visualization Animation */ +.sound-visualization { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + height: 100px; + margin-top: 80px; + margin-bottom: 30px; + opacity: 1; + transition: opacity 0.3s ease; +} + +.sound-visualization.active { + opacity: 1; +} + +.sound-bar { + width: 10px; + background: linear-gradient(to top, var(--accent-orange), var(--accent-teal)); + border-radius: 5px; + animation: soundWave 1.2s ease-in-out infinite; + transform-origin: bottom; +} + +.sound-bar:nth-child(1) { animation-delay: 0s; height: 25px; } +.sound-bar:nth-child(2) { animation-delay: 0.1s; height: 40px; } +.sound-bar:nth-child(3) { animation-delay: 0.2s; height: 32px; } +.sound-bar:nth-child(4) { animation-delay: 0.3s; height: 50px; } +.sound-bar:nth-child(5) { animation-delay: 0.4s; height: 40px; } +.sound-bar:nth-child(6) { animation-delay: 0.5s; height: 28px; } +.sound-bar:nth-child(7) { animation-delay: 0.6s; height: 45px; } +.sound-bar:nth-child(8) { animation-delay: 0.7s; height: 35px; } + +@keyframes soundWave { + 0%, 100% { + transform: scaleY(0.3); + opacity: 0.7; + } + 50% { + transform: scaleY(1); + opacity: 1; + } +} + :root { --primary-dark: #5a5252; --primary-light: #EBEBDE;