navLinks.forEach(link => {
link.classList.remove('active');
const href = link.getAttribute('href').substring(1);
if (href === current) {
link.classList.add('active');
}
});
}
window.addEventListener('scroll', setActiveLink);
window.addEventListener('load', setActiveLink);
// Дополнительный эффект: плавное появление карточек (лёгкая анимация при скролле - optional)
const cards = document.querySelectorAll('.feat-card, .os-card');
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}
});
}, { threshold: 0.2 });
cards.forEach(card => {
card.style.opacity = '0';
card.style.transform = 'translateY(20px)';
card.style.transition = 'opacity 0.5s ease, transform 0.4s ease';
observer.observe(card);
});
// небольшой консольный привет от Jarvis (чисто атмосферно)
console.log("%c⚡ JARVIS AI Assistant online | Интеграция с вашей OC готова", "color: #00d4ff; font-size: 14px; font-weight: bold;");
console.log("%c> Системные модули активны. Голосовая команда: 'Hey Jarvis'", "color: #8e9bc2");
// Добавим динамический эффект курсора в стиле Jarvis (искусственный интеллект)
const heroTitle = document.querySelector('.hero h1');
if(heroTitle) {
let phrases = ["J.A.R.V.I.S для твоей OC", "Умнее с каждым днём", "Интеграция с ядром"];
let idx = 0;
setInterval(() => {
// Небольшой эффект: легкая смена подзаголовка не навязчиво (эстетика)
const sub = document.querySelector('.hero p');
if(sub && Math.random() > 0.85) {
const moods = ["Обработка нейросетей...", "Распознавание голоса активно", "Защита периметра включена", "Jarvis готов к работе"];
const oldText = sub.innerText;
if(!oldText.includes("Обработка")) {
const original = "Интеллектуальный ИИ-ассистент нового поколения. Глубокая интеграция с операционной системой, голосовое управление, аналитика и контроль — всё в едином интерфейсе.";
setTimeout(() => {
if(sub.innerText !== original) sub.innerText = original;
}, 2000);
if(Math.random() > 0.4) sub.innerText = moods[Math.floor(Math.random() * moods.length)] + " • Jarvis v4.0";
}
}
}, 5000);
}
</script>
</body>
</html>