Je travaille sur une application web basée sur l'iPad, et j'ai besoin d'empêcher le défilement excessif pour que cela ressemble moins à une page web. J'utilise actuellement cette fonction pour figer la fenêtre et désactiver le défilement :
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
Cela fonctionne très bien pour désactiver le défilement, mais mon application comporte plusieurs divs défilables. le code ci-dessus les empêche de défiler .
Je ne vise que l'iOS 5 et les versions supérieures et j'ai donc évité les solutions de fortune comme iScroll. À la place, j'utilise ce CSS pour mes divs défilants :
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
Cela fonctionne sans le document overscroll script, mais ne résout pas le problème du défilement des div.
Sans plugin jQuery, Existe-t-il un moyen d'utiliser le correctif pour l'overscroll mais sans mes divs $('.scrollable') ?
EDIT :
J'ai trouvé quelque chose qui est une solution décente :
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
La fenêtre d'affichage se déplace toujours lorsque vous faites défiler le début ou la fin de la division. J'aimerais trouver un moyen de désactiver cela également.
0 votes
J'ai essayé votre dernière version mais ça n'a pas marché non plus.
0 votes
J'ai réussi à empêcher le déplacement de la fenêtre d'affichage lorsque vous faites défiler la page au-delà de la fin de la division en capturant explicitement l'événement de défilement sur le parent de la division défilable et en ne lui permettant pas de défiler réellement. Si vous utilisez jquery mobile, il est judicieux de le faire au niveau de la page, comme suit : $('div[data-role="page"]').on('scroll', function(e) {e.preventDefault() ; }) ;
0 votes
github.com/lazd/iNoBounce fait des merveilles
0 votes
J'ai trouvé ce script qui règle ce problème ! :) github.com/lazd/iNoBounce
0 votes
Pourquoi posteriez-vous le lien à nouveau si quelqu'un au-dessus de votre poste, l'a posté 7 mois plus tôt ?