Add Back to Top button functionality and styles

This commit is contained in:
Will Miao
2025-02-06 09:57:15 +08:00
parent 07ac243db6
commit dc565feca6
3 changed files with 76 additions and 1 deletions

View File

@@ -119,4 +119,36 @@ export function initFolderTagsVisibility() {
folderTags.classList.add('collapsed');
btn.title = 'Expand folder tags';
}
}
export function initBackToTop() {
const button = document.createElement('button');
button.className = 'back-to-top';
button.innerHTML = '<i class="fas fa-chevron-up"></i>';
button.title = 'Back to top';
document.body.appendChild(button);
// Show/hide button based on scroll position
const toggleBackToTop = () => {
const scrollThreshold = window.innerHeight * 1.5;
if (window.scrollY > scrollThreshold) {
button.classList.add('visible');
} else {
button.classList.remove('visible');
}
};
// Smooth scroll to top
button.addEventListener('click', () => {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
});
// Listen for scroll events
window.addEventListener('scroll', toggleBackToTop);
// Initial check
toggleBackToTop();
}