introducing page scroller

This commit is contained in:
Antoine M 2023-12-21 12:31:17 +01:00
parent 189ad18709
commit 1d3f9dfcb6
2 changed files with 47 additions and 2 deletions

View File

@ -0,0 +1,38 @@
function handleScrollButonDisplay() {
const pageScroller = document.querySelector('#page-scroller');
if (
document.body.scrollTop > window.innerHeight / 2 ||
document.documentElement.scrollTop > window.innerHeight / 2
) {
pageScroller.removeAttribute('aria-hidden');
} else {
pageScroller.setAttribute('aria-hidden', 'true');
}
}
function scrollTop() {
window.scrollTo({
top: 0,
behavior: 'smooth',
});
}
function scrollToFilters() {
const filters = document.querySelector('.filters-toolbar');
filters.scrollIntoView({
behavior: 'smooth',
});
}
export default function pageScrollerInit() {
const pageScroller = document.querySelector('#page-scroller');
if (!pageScroller) return;
window.addEventListener('scroll', handleScrollButonDisplay);
const scrollTopBtn = document.querySelector('#scroller-top');
if (!scrollTopBtn) return;
scrollTopBtn.addEventListener('click', scrollTop);
const scrollerFilterBtn = document.querySelector('#scroller-filter');
if (!scrollerFilterBtn) return;
scrollerFilterBtn.addEventListener('click', scrollToFilters);
}

View File

@ -1,6 +1,13 @@
<?php <?php
?> ?>
<!-- <button>salut</button> -->
<div id="scroller-top" aria-hidden="true"> <div id="page-scroller" aria-hidden="true">
<?php if (is_page_template('template-publications.php')) : ?>
<button id="scroller-filter"><?php echo __("Modifier les filtres", "homegrade-theme__texte-fonctionnel") ?></button>
<?php endif; ?>
<button id="scroller-top">
<img class="arrow-icon" src="<?php echo get_template_directory_uri() . '/resources/img/graphic-assets/arrow-scroll-top.svg' ?>" alt=''> <img class="arrow-icon" src="<?php echo get_template_directory_uri() . '/resources/img/graphic-assets/arrow-scroll-top.svg' ?>" alt=''>
</button>
</div> </div>