39 lines
No EOL
1.5 KiB
JavaScript
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"
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
})(); |