2013-10-27 35 views
22

Wenn versuchen, herauszufinden, wie viel eine Web-Seite wird von oben gescrollt worden, die von diesen sollte man Gebrauch:body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY

document.body.scrollTop,

document.documentElement.scrollTop,

window.pagYOffset,

window.scrollY

Welche (s) würde ich in diesen zwei separaten Szenarien wählen:

a) Wenn ich eine maximale Kompatibilität (über den Haupt Browser verwendeten derzeit)

b) Wenn ich wollte Code, war die meisten Standards Beschwerde/wanted zukunftssicher/strict-mode-kompatibel (aber nicht darauf bedacht, alte/nicht-standardisierte Browser zu unterstützen)?

Antwort

20

Ich bin mit drei von ihnen in der skrollr Quelle

return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; 

https://github.com/Prinzhorn/skrollr/blob/b98d40820b9864be275e81af382045d72cc5a08a/src/skrollr.js#L627

a) arbeitet es bisher in allen Browsern (niemand Beschwerde im vergangenen Jahr).

b) Da es die erste Definition verwenden wird, denke ich, es ist ziemlich zukunftssicher und stabil.

Wenn Sie Lust haben Sie dies tun könnte auch

Math.max(window.pageYOffset, document.documentElement.scrollTop, document.body.scrollTop) 
+0

Es ist https://github.com/Prinzhorn/skrollr/blob/master/src/skrollr.js#L627 jetzt: D – Amio

+0

@Amio Danke, ich habe den Link auf ein bestimmtes Commit aktualisiert, damit es sich nicht wieder ändert – Prinzhorn

+3

Bessere Verwendung 'document.documentElement.scrollTop' – McX

1

Da skrollr nicht window.scrollY nicht verwendet, kann dies offensichtlich gewesen, aber als weitere Antwort auf die ursprüngliche Frage: window.pageYOffset ist ein Alias ​​für window.scrollY. Siehe Window.scrollY.

2

Um Prinzhorn ‚s answear:

Seit body und documentElement ist undefined in Chrome/Firefox, eine bessere Nutzung:

return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; 

selbst getestet.

+2

document.body.scrollTop in FF funktioniert nicht und document.documentElement.scrollTop verhält sich seltsam: Werte sind manchmal ungerade. –

Verwandte Themen