// Funcionalidades principais do site
document.addEventListener('DOMContentLoaded', function() {
// Navegação suave para links de âncora
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const targetId = this.getAttribute('href');
const targetElement = document.querySelector(targetId);
if (targetElement) {
window.scrollTo({
top: targetElement.offsetTop - 80,
behavior: 'smooth'
});
}
});
});
// Animação para elementos ao rolar a página
const animateOnScroll = function() {
const elements = document.querySelectorAll('.category-card, .course-option-card, .platform-feature, .testimonial-card');
elements.forEach(element => {
const elementPosition = element.getBoundingClientRect().top;
const windowHeight = window.innerHeight;
if (elementPosition < windowHeight - 100) {
element.classList.add('animated');
}
});
};
// Executar animação ao carregar a página
animateOnScroll();
// Executar animação ao rolar a página
window.addEventListener('scroll', animateOnScroll);
// Adicionar classe ativa aos links de navegação
const sections = document.querySelectorAll('section[id]');
window.addEventListener('scroll', function() {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
const sectionHeight = section.clientHeight;
if (pageYOffset >= sectionTop - 200) {
current = section.getAttribute('id');
}
});
document.querySelectorAll('.main-nav a').forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href') === `#${current}`) {
link.classList.add('active');
}
});
});
// Menu mobile
const createMobileMenu = function() {
const header = document.querySelector('.header-content');
const nav = document.querySelector('.main-nav');
if (window.innerWidth <= 768 && !document.querySelector('.mobile-menu-toggle')) {
const mobileMenuToggle = document.createElement('button');
mobileMenuToggle.classList.add('mobile-menu-toggle');
mobileMenuToggle.innerHTML = '';
mobileMenuToggle.setAttribute('aria-label', 'Abrir menu de navegação');
header.insertBefore(mobileMenuToggle, nav);
nav.classList.add('mobile-nav');
mobileMenuToggle.addEventListener('click', function() {
this.classList.toggle('active');
nav.classList.toggle('active');
});
}
};
// Criar menu mobile se necessário
createMobileMenu();
// Atualizar menu mobile ao redimensionar a janela
window.addEventListener('resize', createMobileMenu);
// Adicionar funcionalidade de FAQ expansível
const faqItems = document.querySelectorAll('.faq-item');
faqItems.forEach(item => {
const question = item.querySelector('.faq-question');
const answer = item.querySelector('.faq-answer');
// Inicialmente, ocultar as respostas
answer.style.display = 'none';
question.addEventListener('click', function() {
// Alternar visibilidade da resposta
if (answer.style.display === 'none') {
answer.style.display = 'block';
question.classList.add('active');
} else {
answer.style.display = 'none';
question.classList.remove('active');
}
});
});
});