Y at-il un moyen de détecter lorsque l'utilisateur redimensionne l'écran en dessous d'une certaine largeur et hauteur et afficher une div avec un message (dans un div) indiquant que la fenêtre est trop petit pour afficher correctement la page?Déterminer si l'écran devient trop petit pour afficher la page
0
A
Répondre
2
var resizeTimer;
function nagOnResize() {
//pause for 1/4 of a second to see if the window stopped moving
clearTimeout(resizeTimer);
resizeTimer = setTimeout(doNagOnResize, 250);
}
function doNagOnResize() {
$(window).unbind('resize', nagOnResize); //pause the event
var h = $(window).height(), w = $(window).width();
if(w < 300) {
alert("< 300px wide");
}
$(window).resize(nagOnResize); //continue the event
};
$(window).resize(nagOnResize);
exemple en direct: http://jsfiddle.net/FWhgT/
1
Vous devriez faire quelque chose comme
var nagOnResize = function() {
var h = $(window).height(), w = $(window).width();
// change the condition as needed
if(w < 300) {
// make it $("#nag").show(); if you want
alert("< 300px wide");
}
// Recursive call. Not binding to $(window).resize as it's fired way too many times on some browsers
setTimeout(nagOnResize, 100);
};
nagOnResize();
démo en direct: http://jsfiddle.net/ajVpG/1/ (Diminution largeur du navigateur pour rendre le résultat iframe < 300px)
+1
S'il vous plaît ne pas faites cela, vous appelez cette fonction 10 fois par seconde! Même lorsque la fenêtre n'est pas redimensionnée. Utilisez $ (window) .resize - c'est ce à quoi cela sert. Si vous pensez qu'il est appelé à beaucoup ajouter un retard, sinon votre guérison est pire que la maladie. Je vais poster une version éditée dans une nouvelle réponse. – Ariel
Questions connexes
- 1. La page JSP devient trop longue pour être compilée
- 2. La requête Sql devient trop lente
- 3. UIPopoverController trop grand et UIPickerView trop petit
- 4. Comment déterminer si la requête de SQL est trop complexe?
- 5. Marker standard dans Google Maps trop petit
- 6. texte devient illisible petit sur un grand écran
- 7. Theme.Dialog crée écran trop petit
- 8. QLabel sizehint est trop petit
- 9. Méthode efficace pour déterminer si la requête renverra «trop d'enregistrements» dans SQL Server
- 10. RGeo Projected Buffer Polygon trop petit
- 11. garder div flottant vers la gauche si la fenêtre du navigateur devient plus petit
- 12. Vous cherchez un plugin jquery pour redimensionner/agrandir le navigateur si trop petit?
- 13. Comment déterminer si la page est une page de connexion?
- 14. HtmlEditorExtender texte pour FontSizeSelector et FontNameSelector est trop petit
- 15. Div intérieur pour faire défiler si div externe est trop petit?
- 16. Quand est-ce que ça devient trop?
- 17. Le module Python devient trop gros
- 18. Sencha Touch Panel parfois trop petit
- 19. tampon de chaîne de caractères trop petit
- 20. LaTeX - Réduire automatiquement une zone pour qu'elle apparaisse dans une page si elle est trop grande?
- 21. Hibernate session dans la conversation Seam devient trop grand
- 22. icônes semble trop petit dans certains appareils
- 23. Déclencheur MySQL: est-il possible de supprimer des lignes si la table devient trop grande?
- 24. Afficher la page différemment (css) si iframe
- 25. Android WallpaperManager échelles Bitmap trop petit
- 26. Comment fonctionne cette fonction js? Titre trop petit pour m'expliquer
- 27. App se bloque lorsque QList devient trop grand
- 28. Vous cherchez OpenGL ES API pour tester si l'objet est trop petit pour être vu par la caméra?
- 29. Div devient trop large lorsque 1 colonne est supprimée
- 30. Déterminer si sur la page de produit dans Magento
Le 'unbind' suggéré ici semble inutile ... Aussi - Ben Alman a un plugin [throttle/debounce] (http://benalman.com/news/2010/03/jquery-throttle-debounce-v11/) qui fait faire le "timeout" plutôt trivial. Vous pourriez vouloir vérifier, son super minuscule. – gnarf
Le 'unbind()' est d'éviter de mettre en file d'attente plus d'événements pendant que le 'alert()' est visible, et le blocage. Sinon, vous pouvez en obtenir une série complète (inutilement) après avoir cliqué sur OK. En mettant l'événement en pause, vous n'en obtiendrez qu'un. – Ariel