Comment désactiver le défilement par inertie sur le corps pour les navigateurs iOS?

Je dois désactiver le défilement par inertie sur l’élément body pour iPad, tout en conservant la possibilité de faire défiler la page sans inertie.

Je cherche depuis un certain temps mais je n’ai trouvé aucune bonne solution. Peut-être que je ne cherche pas la bonne chose? Y at-il un hack ou une solution de contournement qui pourrait rendre cela possible?

Vous pouvez utiliser la propriété div with overflow, cela tue le défilement lisse iOS

 
long long text...

Css

 html, body { height: 100%; margin: 0; overflow: hidden; } .scroll { overflow: auto; height: 100%; } 

http://jsbin.com/palixi/edit

Ajoutez ceci au CSS de l’élément body :

 -webkit-overflow-scrolling: auto; 

La valeur par défaut pour -webkit-overflow-scrolling est touch . Cela demande aux appareils iOS d’utiliser le défilement “inertiel”. Les documents: https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-overflow-scrolling

@meuwka answer vous permet d’atteindre votre objective, mais d’une manière détournée – cela fonctionne car les éléments div ont -webkit-overflow-scrolling: auto; comme par défaut.

J’ai utilisé inobounce qui peut être trouvé ici

Vous remarquerez que vous devez spécifier une propriété height et un overflow: auto pour l’élément que vous souhaitez faire défiler, y compris -webkit-overflow-scrolling: touch; . Les docs font un bon travail pour expliquer.