Comment détecter le changement de taille de document dans jquery

Alors supposons que le fait de cliquer sur quelque chose entraînerait un nouveau contenu chargé sur l'écran, d'où la hauteur du document change et alors qu'auparavant il n'y a pas de barre de défilement, maintenant il y a des barres de défilement …

Comment puis-je détecter quelque chose comme ça en utilisant jquery

L'événement de redimensionnement contraignant sur la fenêtre ne détecte que le redimensionnement de la fenêtre alors que la liaison dans le document ne fonctionne pas

Mettre à jour:
DOMSubtreeModified pas l'événement DOMSubtreeModified . Il est vieux, obsolète et pas bien pris en charge par les navigateurs. Dans 99,9% des cas, il existe un événement différent sur lequel vous pouvez écouter. Très probablement, vous êtes l'une de ces personnes qui utilisent jQuery et faites des choses AJAX, alors regardez leurs documents AJAX .


Tous ces événements sont disponibles. Vous devriez détecter $(document).bind('DOMSubtreeModified', function() { ... }); Et vérifiez une modification de dimension au tir précédent.

 var height = $(this).height(), width = $(this).width(); $(document).bind('DOMSubtreeModified', function() { if($(this).height() != height || $(this).width() != width) { recalibrate(); } }); 

Cet événement déclenche chaque fois que l' on fait quelque chose au DOM. Par conséquent, cela ralentira votre navigateur.

Nous devrions avoir une meilleure alternative. Pourriez-vous nous donner plus d'informations sur votre scénario?

Vous pourriez essayer un événement défilé en pourcentage comme celui-ci: http://www.jquery4u.com/snippets/jquery-detect-scrolled-page/

Vous devrez peut-être ajouter une vérification pour voir si la barre de défilement verticale est présente:

 var hasVScroll = document.body.scrollHeight > document.body.clientHeight;