J'essaie d'ajouter un élément collant qui ne reste en bas de la page que lorsqu'il entre dans la fenêtre d'affichage. L'idée est que l'élément soit placé quelque part au milieu de la page et ne s'affiche pas immédiatement lorsque l'utilisateur visite la page.
Voici mes progrès jusqu'à présent :
div {
height: 300px;
}
.sticky {
position: -webkit-sticky;
position: sticky;
bottom: 0;
height: 30px;
width: 100vw;
background: yellow;
}
<div style="background: red;">Scroll</div>
<div style="height: 300px; background: orange;"></div>
<div class="sticky">Sticky Section</div>
<div style="background: green;"></div>
<div style="background: blue;"></div>
Le problème est que mon code fait le contraire de ce que je veux qu'il fasse. L'élément ne doit dépasser que son emplacement d'origine.
Changer bottom: 0
a top: calc(100vh - 30px)
en .sticky
semble bien fonctionner sur le bureau, mais j'ai remarqué qu'il n'est pas adéquat pour Safari sur iOS. Avec cette solution "piratée", lorsque l'utilisateur fait défiler la page vers le haut, la barre inférieure augmente de taille et oblige l'élément collant à sauter.