J'ai trouvé que la réponse par cballou n'était plus de travail dans Firefox comme de Janv. 2014. Plus précisément, if (self.pageYOffset)
ne se déclenche pas si le client a un défilement à droite, mais pas parce qu' 0
est un falsey nombre. Cela se passait inaperçue pendant un certain temps parce que Firefox pris en charge document.body.scrollLeft
/Top
, mais ce n'est plus de travail pour moi (sur Firefox 26.0).
Voici ma solution modifiée:
var getPageScroll = function(document_el, window_el) {
var xScroll = 0, yScroll = 0;
if (window_el.pageYOffset !== undefined) {
yScroll = window_el.pageYOffset;
xScroll = window_el.pageXOffset;
} else if (document_el.documentElement !== undefined && document_el.documentElement.scrollTop) {
yScroll = document_el.documentElement.scrollTop;
xScroll = document_el.documentElement.scrollLeft;
} else if (document_el.body !== undefined) {// all other Explorers
yScroll = document_el.body.scrollTop;
xScroll = document_el.body.scrollLeft;
}
return [xScroll,yScroll];
};
Testé et de travail dans FF26, Chrome 31, IE11. Presque certainement travaille sur une version plus ancienne de toutes.