File size: 1,720 Bytes
96f5be6 | 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | document.addEventListener('DOMContentLoaded', () => {
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href');
if (targetId === '#') return;
const targetElement = document.querySelector(targetId);
if (targetElement) {
targetElement.scrollIntoView({
behavior: 'smooth'
});
}
});
});
// Copy code snippets functionality
document.querySelectorAll('.copy-btn').forEach(button => {
button.addEventListener('click', () => {
const codeBlock = button.parentElement.querySelector('code');
if (codeBlock) {
navigator.clipboard.writeText(codeBlock.textContent);
button.textContent = 'Copied!';
setTimeout(() => {
button.textContent = 'Copy';
}, 2000);
}
});
});
// Accordion functionality for FAQ section
document.querySelectorAll('.faq-question').forEach(question => {
question.addEventListener('click', () => {
const answer = question.nextElementSibling;
const isOpen = answer.style.display === 'block';
// Close all answers first
document.querySelectorAll('.faq-answer').forEach(ans => {
ans.style.display = 'none';
});
// Toggle current answer
answer.style.display = isOpen ? 'none' : 'block';
});
});
}); |