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 це вирішено задовільно, і я впевнений, що ви, пепси, уникнете "зміни переливу прокрутки на прихований, а потім назад", що, пробачте, трохи брудний трюк, особливо якщо ви не хочете " t задокументуйте його на код для використання майбутнім програмістом.
2. ДОПОМОГА порада, зверніть увагу:
Більше того, якщо ви робите сценарій, ви можете придумати тести, щоб допомогти програмістам у використанні ваших бібліотек, дозвольте мені придумати пару:
$ (документ) .ready (функція () {
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");
}
});
EDIT: про частину 2, "ДОПОМОГА підказка, зверніть увагу": @Machiel, в коментарі вчора (2014-09-04), був НАДІЛЬНО правильний: перевірка $ не може знаходитися всередині готової події Jquery, оскільки ми, як він зазначив, припускаючи, що $ вже визначено. ДЯКУЙТЕ ЗА Вказівку на це, і будь ласка, будь ласка, решта читачів виправте це, якщо ви використовували це у своїх сценаріях. Моя пропозиція: у ваших бібліотеках помістіть функцію "install_script ()", яка ініціалізує бібліотеку (введіть будь-яку посилання на $ всередині такої функції init, включаючи декларацію про готовність ()) та НА ПОЧАТКУ такої функції "install_script ()" , перевірте, чи визначено $, але зробіть все незалежним від JQuery, щоб ваша бібліотека могла "діагностувати себе", коли JQuery ще не визначений. Я вважаю за краще цей метод, а не змушувати автоматичне створення JQuery, що приносить його з CDN. Це крихітні записки в сторону допомоги інших програмістів. Я думаю, що люди, які створюють бібліотеки, повинні бути багатшими відгуками на помилки потенційних програмістів. Наприклад, Google Apis потрібен посібник убік, щоб зрозуміти повідомлення про помилки. Це абсурд, вам потрібна зовнішня документація для деяких крихітних помилок, які не потребують вас шукати посібник чи технічні характеристики. Бібліотека повинна бути самодокументована. Я пишу код, навіть беручи до уваги помилки, які я можу допустити навіть через півроку, і він все ще намагається бути чистим і не повторюваним кодом, уже написаним для запобігання майбутнім помилкам розробника. Я думаю, що люди, які створюють бібліотеки, повинні бути багатшими відгуками на помилки потенційних програмістів. Наприклад, Google Apis потрібен посібник убік, щоб зрозуміти повідомлення про помилки. Це абсурд, вам потрібна зовнішня документація для деяких крихітних помилок, які не потребують вас шукати посібник чи технічні характеристики. Бібліотека повинна бути самодокументована. Я пишу код, навіть беручи до уваги помилки, які я можу допустити навіть через півроку, і він все ще намагається бути чистим і не повторюваним кодом, уже написаним для запобігання майбутнім помилкам розробника. Я думаю, що люди, які створюють бібліотеки, повинні бути багатшими відгуками на помилки потенційних програмістів. Наприклад, Google Apis потрібен посібник убік, щоб зрозуміти повідомлення про помилки. Це абсурд, вам потрібна зовнішня документація для деяких крихітних помилок, які не потребують вас шукати посібник чи технічні характеристики. Бібліотека повинна бути самодокументована. Я пишу код, навіть беручи до уваги помилки, які я можу допустити навіть через півроку, і він все ще намагається бути чистим і не повторюваним кодом, уже написаним для запобігання майбутнім помилкам розробника. не потрібно, щоб ви шукали посібник чи специфікацію. Бібліотека повинна бути самодокументована. Я пишу код, навіть беручи до уваги помилки, які я можу допустити навіть через півроку, і він все ще намагається бути чистим і не повторюваним кодом, уже написаним для запобігання майбутнім помилкам розробника. не потрібно, щоб ви шукали посібник чи специфікацію. Бібліотека повинна бути самодокументована. Я пишу код, навіть беручи до уваги помилки, які я можу допустити навіть через півроку, і він все ще намагається бути чистим і не повторюваним кодом, уже написаним для запобігання майбутнім помилкам розробника.