1. Réponse à la question principale
Le script $(window).height()
fonctionne bien (montrant la fenêtre d'affichage de la hauteur et de ne pas le document avec le défilement de la hauteur), MAIS il faut que vous placez correctement la balise doctype dans votre document, par exemple, ces doctypes:
Pour le HTML 5:
<!DOCTYPE html>
Pour de transition HTML4:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Probablement le défaut doctype supposé par certains navigateurs est tel, que $(window).height()
prend le document de la hauteur et de ne pas le navigateur de la hauteur. Avec le doctype de la spécification, il est résolu de manière satisfaisante, et je suis sûr que vous peps permettra d'éviter "l'évolution de défilement-overflow hidden et puis de nouveau", qui est, je suis désolé, un peu sale tour, spécialement si vous n'avez pas de document sur le code pour l'avenir du programmeur d'utilisation.
2. Une autre astuce, note de côté:
En outre, si vous faites un script, vous pouvez inventer des tests pour aider les programmeurs à l'aide de vos bibliothèques, permettez-moi d'inventer un couple:
$(document).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");
}
});
-----------------------
EDIT: à propos de la partie 2, "Un petit truc en plus, note de côté":
@Machiel, hier dans les commentaires (2014-09-04), était tout à fait à droite: la vérification de l' $ ne peut pas être à l'intérieur de l'événement ready de Jquery, car nous sommes, comme il l'a souligné, en supposant que $ est déjà défini. MERCI POUR CETTE remarque, et s'il vous plaît, le reste de vous, les lecteurs, corriger cet, si vous avez utilisé dans vos scripts. Ma suggestion est la suivante: dans vos bibliothèques mettre un "install_script()" fonction qui initialise la bibliothèque (mettre toute référence à $ l'intérieur d'une telle fonction init, y compris la déclaration de prêt()) et AU DÉBUT de ces "install_script()" fonction, vérifiez si le $ est définie, mais de faire tout indépendant de JQuery, votre bibliothèque peut "diagnostiquer" lorsque JQuery n'est pas encore défini. Je préfère cette méthode plutôt que de forcer la création automatique de JQuery en l'amenant à partir d'un CDN. Ceux sont de petites notes de côté pour aider les autres programmeurs. Je pense que les gens qui font les bibliothèques se doivent d'être plus riche dans les commentaires pour le potentiel du programmeur erreurs. Par exemple, l'Api Google besoin d'un côté manuel pour comprendre les messages d'erreur. C'est absurde, à besoin de la documentation externe pour les quelques petites erreurs qui n'ont pas besoin de vous pour aller à la recherche d'un manuel ou d'un cahier des charges. La bibliothèque doit être AUTO-DOCUMENTÉ. J'écris du code, même en prenant soin de les erreurs que je pourrais commettre encore six mois à partir de maintenant, et il essaie toujours d'être propre et sans code répétitif, déjà-écrit-pour-éviter-avenir-développeur-erreurs.
---------------------
Meilleures salutations, à partir de
En Colombie, Amérique Du Sud,
David López
Investigación y Programación