geno/wp-content/themes/astra/assets/js/unminified/sticky-add-to-cart.js
2024-02-01 11:54:18 +00:00

39 lines
No EOL
1.5 KiB
JavaScript

(function () {
// Triggers sticky add to cart on scroll.
const astraStickyAddToCart = document.querySelector(".ast-sticky-add-to-cart");
if (astraStickyAddToCart) {
const scrollOffset = document.querySelector('.product .single_add_to_cart_button').offsetTop;
window.addEventListener("scroll", function () {
if (window.scrollY >= scrollOffset) {
astraStickyAddToCart.classList.add('is-active');
} else {
astraStickyAddToCart.classList.remove('is-active');
}
})
}
// Smooth scrolls if select option button is active.
const AstraSmoothScrollBtn = document.querySelector(".ast-sticky-add-to-cart-action-wrap .single_link_to_cart_button");
const element = document.querySelector(".single_add_to_cart_button");
if (AstraSmoothScrollBtn && element) {
const headerOffset = 230;
const elementPosition = element.getBoundingClientRect().top;
if (elementPosition) {
const offsetPosition = elementPosition + window.pageYOffset - headerOffset;
if (offsetPosition) {
AstraSmoothScrollBtn.addEventListener('click', function (e) {
e.preventDefault();
window.scrollTo({
top: offsetPosition,
behavior: "smooth"
});
});
}
}
}
})();