feat: scroll top button
This commit is contained in:
@@ -8,6 +8,7 @@ const searchInput = document.getElementById('searchInput');
|
||||
const linksContainer = document.getElementById('linksContainer');
|
||||
const toastContainer = document.getElementById('toastContainer');
|
||||
const archiveToggle = document.getElementById('archiveToggle');
|
||||
const scrollToTopBtn = document.getElementById('scrollToTopBtn');
|
||||
|
||||
// State
|
||||
let allLinks = [];
|
||||
@@ -18,6 +19,7 @@ let showArchived = false;
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
loadLinks();
|
||||
setupEventListeners();
|
||||
setupScrollToTop();
|
||||
});
|
||||
|
||||
// Event listeners
|
||||
@@ -27,6 +29,26 @@ function setupEventListeners() {
|
||||
archiveToggle.addEventListener('click', handleToggleArchive);
|
||||
}
|
||||
|
||||
// Setup scroll to top button
|
||||
function setupScrollToTop() {
|
||||
// Show/hide button based on scroll position
|
||||
window.addEventListener('scroll', () => {
|
||||
if (window.pageYOffset > 300) {
|
||||
scrollToTopBtn.classList.add('show');
|
||||
} else {
|
||||
scrollToTopBtn.classList.remove('show');
|
||||
}
|
||||
});
|
||||
|
||||
// Scroll to top when button is clicked
|
||||
scrollToTopBtn.addEventListener('click', () => {
|
||||
window.scrollTo({
|
||||
top: 0,
|
||||
behavior: 'smooth'
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Load all links
|
||||
async function loadLinks() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user