31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
// Update search function with fallback animation
|
|
function handleSearch() {
|
|
const searchTerm = document.getElementById('searchInput').value.toLowerCase();
|
|
const topicCards = document.querySelectorAll('.topic-card');
|
|
|
|
topicCards.forEach(card => {
|
|
const title = card.querySelector('.topic-title')?.textContent.toLowerCase() || '';
|
|
const description = card.querySelector('.topic-description')?.textContent.toLowerCase() || '';
|
|
const relatedTopics = Array.from(card.querySelectorAll('.related-topics li'))
|
|
.map(li => li.textContent.toLowerCase())
|
|
.join(' ');
|
|
|
|
const content = `${title} ${description} ${relatedTopics}`;
|
|
|
|
if (content.includes(searchTerm)) {
|
|
card.style.display = 'block';
|
|
if (window.gsap) {
|
|
gsap.to(card, {
|
|
opacity: 1,
|
|
y: 0,
|
|
duration: 0.3
|
|
});
|
|
} else {
|
|
card.style.opacity = 1;
|
|
card.style.transform = 'translateY(0)';
|
|
}
|
|
} else {
|
|
card.style.display = 'none';
|
|
}
|
|
});
|
|
} |