1.Ответ на главный вопрос
Сценарий $(window).height()
работает хорошо (показывает высоту области просмотра, а не документ с высотой прокрутки), НО это требует правильной установки тега doctype в документе,например, следующие типы документов:
Для HTML 5:
<!DOCTYPE html>
Для переходного HTML4:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ВозможноТип документа по умолчанию, предполагаемый некоторыми браузерами, таков, что $(window).height()
принимает высоту документа, а не высоту браузера.Со спецификацией doctype она удовлетворительно решена, и я уверен, что вы, peps, избежите «изменения переполнения прокрутки на скрытый и затем обратно», что, извините, немного подвох, особенно если вы неЗапишите его в коде для использования в будущем программистом.
2.ДОПОЛНИТЕЛЬНЫЙ совет, обратите внимание: Более того, если вы делаете скрипт, вы можете изобрести тесты, чтобы помочь программистам в использовании ваших библиотек, позвольте мне изобрести пару:
$ (документ).ready (function () {
if(typeof $=='undefined') {
alert("PROGRAMMER'S Error: you haven't called JQuery library");
} else if (typeof $.ui=='undefined') {
alert("PROGRAMMER'S Error: you haven't installed the UI 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");
}
});
РЕДАКТИРОВАТЬ: о части 2, "ДОПОЛНИТЕЛЬНЫЙ совет, примечаниеaside ": @Machiel во вчерашнем комментарии (2014-09-04) был совершенно прав: проверка $ не может быть внутри события ready Jquery, потому что мы, как он указал, предполагая, что $ уже определено,СПАСИБО, ЧТОБЫ УКАЗАТЬ ЭТО, и, пожалуйста, остальным читателям исправьте это, если вы использовали это в своих сценариях.Мое предложение: в ваших библиотеках поместите функцию "install_script ()", которая инициализирует библиотеку (поместите любую ссылку на $ внутри такой функции init, включая объявление ready ()) и В НАЧАЛЕ такой функции "install_script ()"проверьте, определен ли $, но сделайте все независимым от JQuery, чтобы ваша библиотека могла «диагностировать себя», когда JQuery еще не определен.Я предпочитаю этот метод, а не принудительное автоматическое создание JQuery с использованием CDN.Это крошечные заметки для помощи другим программистам.Я думаю, что люди, которые делают библиотеки, должны быть богаче в ответ на ошибки потенциальных программистов.Например, Google Apis нужно дополнительное руководство для понимания сообщений об ошибках.Это абсурдно, требовать внешнюю документацию для каких-то крошечных ошибок, которые не требуют, чтобы вы пошли искать руководство или спецификацию.Библиотека должна быть САМОДОКУМЕНТИРОВАНА.Я пишу код, даже заботясь об ошибках, которые могу совершить даже через шесть месяцев, и он все еще пытается быть чистым и не повторяющимся кодом, уже написанным для предотвращения будущих ошибок разработчика.