C'est bon, j'ai trouvé ce qui buggais. Comme je me sert d'une barre de défilement interne, document.body.scrollLeft et document.body.scrollTop restaient fixe.
Je pense que maintenant tout va bien. Merci beaucoup Sadeq, j'ai beaucoup progressé dans le javascript (faut dire, je suis parti de pas grand chose...)