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); |