Skrypt $(window).height()działa dobrze (pokazuje wysokość widoku, a nie dokument z przewijaną wysokością), ALE wymaga poprawnego umieszczenia tagu doctype w dokumencie, na przykład te typy dokumentów:
W przypadku html5: <!doctype html>
dla przejściowego html4: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Prawdopodobnie domyślny typ dokumentu przyjmowany przez niektóre przeglądarki jest taki, że $(window).height()przyjmuje wysokość dokumentu, a nie wysokość przeglądarki. Ze specyfikacją doctype jest to rozwiązane w zadowalający sposób i jestem prawie pewien, że unikniecie "zmiany przepełnienia przewijania na ukryty, a następnie z powrotem", co jest, przepraszam, trochę brudną sztuczką, szczególnie jeśli tego nie zrobisz Udokumentuj to w kodzie do wykorzystania w przyszłości przez programistów.
Co więcej, jeśli robisz skrypt, możesz wymyślić testy, które pomogą programistom w twoich bibliotekach, pozwól mi wymyślić kilka:
$(document).ready(function() {
if(typeof $=='undefined') {
alert("Error, you haven't called JQuery library");
}
if(document.doctype==null || screen.height < parseInt($(window).height()) ) {
alert("ERROR, check your doctype, the calculated heights are not what you might expect");
}
});