CTA Sticky en mobile
CSS
@media(max-width:768px) {
.mm-cta-sticky {
display: block;
background-color: white;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
box-shadow: 0 0 20px rgba(0,0,0,0.1);
z-index: 3;
padding-left: 2%;
padding-right: 2%;
padding-top: 12px;
max-width: none;
}
}JavaScript
if (window.screen.width < 768) {
// STICKY CTA DISPLAY ONLY WHEN SCROLL AFTER TRUE CTA
var derniere_position_de_scroll_connue = 0;
var ticking = false;
var CTA = document.querySelector('.mm-bg-js-product-add');
function faireQuelqueChose(position_scroll) {
if (position_scroll > 400) {
CTA.classList.add('mm-cta-sticky');
} else {
CTA.classList.remove('mm-cta-sticky');
}
}
window.addEventListener('scroll', function(e) {
derniere_position_de_scroll_connue = window.scrollY;
if (!ticking) {
window.requestAnimationFrame(function() {
faireQuelqueChose(derniere_position_de_scroll_connue);
ticking = false;
});
}
ticking = true;
});
}Explication
Ce système crée un CTA (Call To Action) sticky qui apparaît uniquement sur mobile après un certain scroll :
-
CSS :
- S'applique uniquement sur les écrans de moins de 768px
- Positionne le CTA en bas de l'écran avec
position: fixed - Ajoute une ombre pour le faire ressortir
- Style avec padding et background blanc
-
JavaScript :
- Vérifie d'abord si l'écran est mobile (
window.screen.width < 768) - Utilise
requestAnimationFramepour optimiser les performances du scroll - Ajoute la classe
mm-cta-stickyquand le scroll dépasse 400px - Retire la classe quand l'utilisateur remonte en haut de la page
- Vérifie d'abord si l'écran est mobile (
Utilisation
Parfait pour afficher un bouton d'ajout au panier ou un CTA important qui reste visible en bas de l'écran sur mobile, améliorant ainsi l'expérience utilisateur et les conversions.
Notes
- Le sélecteur
.mm-bg-js-product-adddoit correspondre à votre élément CTA - Le seuil de 400px peut être ajusté selon vos besoins
- La classe
mm-cta-stickyest ajoutée/retirée dynamiquement selon la position du scroll