2017-09-06 1 views
0

J'ai récemment remarqué que lorsque vous avez une div contenant un contenu débordant qui est défilable, en chrome, vous pouvez facilement faire défiler le défilement de ce div vers le reste du corps, mais dans Safari, vous ne pouvez pas. Au lieu de faire une transition en douceur, le défilement s'arrête lorsque vous atteignez le haut ou le bas de l'élément contenu, et vous devez défiler à nouveau pour commencer à défiler sur le corps. Il est essentiel pour le projet sur lequel je travaille que je permette à Safari de défiler en douceur de la même manière que Chrome. Pour la vie de moi, je ne peux pas comprendre comment faire cela. Toute contribution est appréciée, merci pour votre temps!Comment faire pour permettre un défilement fluide dans tous les navigateurs

+0

bienvenue à empiler débordement. Votre code est généralement la meilleure façon de vous aider. Voir [article minimal, complet, vérifiable] (https://stackoverflow.com/help/mcve) pour plus d'informations. – cwanjt

Répondre

0

Vous pouvez essayer mon aller aux paramètres pour un élément CSS qui est défilable. Bien que je ne peux pas vous aider trop sans voir votre code, essayez la mise en œuvre de ces:

-webkit-overflow-scrolling: touch; 
    overflow-y: scroll; 

Je demande habituellement ces derniers pour les appareils iOS et le tour est joué. Pas sûr à 100% si cela aidera votre problème.

+0

Il ne fonctionnera pas correctement pour iOS car le navigateur ne peut faire défiler qu'un seul élément à la fois, ** pas deux consécutivement ** comme le fait Silas indents à faire. – WebsitesOntario

0

Safari sépare volontairement les gestes de défilement des différents éléments afin que l'utilisateur puisse clairement indiquer quel élément est défilé.

Bien sûr, vous pouvez utiliser JavaScript pour résoudre ce problème de façon irréfléchie. Par exemple, vous pouvez définir le ScrollTop de body à la quantité que l'utilisateur a fait défiler lorsque le div a atteint le fond.