File size: 1,102 Bytes
ee0dfb1
 
 
 
 
 
 
5f44c5d
ee0dfb1
5f44c5d
ee0dfb1
 
 
 
 
 
 
 
5f44c5d
ee0dfb1
79a3399
ee0dfb1
 
 
79a3399
 
ee0dfb1
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Hiệu ứng cuộn mượt mà khi nhấp vào liên kết (nếu thêm nav sau này)
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
    anchor.addEventListener('click', function(e) {
        e.preventDefault();
        document.querySelector(this.getAttribute('href')).scrollIntoView({
            behavior: 'smooth'
        });
    });
});

// Hiệu ứng xuất hiện khi cuộn
const sections = document.querySelectorAll('section');
const observer = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
        if (entry.isIntersecting) {
            entry.target.classList.add('visible');
            observer.unobserve(entry.target);
        }
    });
}, { threshold: 0.1 });

sections.forEach(section => {
    section.classList.add('hidden');
    observer.observe(section);
});

// Thêm CSS động qua JS
const style = document.createElement('style');
style.textContent = `
    .hidden { opacity: 0; transform: translateY(20px); transition: all 0.5s; }
    .visible { opacity: 1; transform: translateY(0); }
`;
document.head.appendChild(style);