Maison > interface Web > tutoriel CSS > Pourquoi les requêtes $(window).width() et CSS Media signalent-elles différentes largeurs de fenêtre ?

Pourquoi les requêtes $(window).width() et CSS Media signalent-elles différentes largeurs de fenêtre ?

Susan Sarandon
Libérer: 2024-12-10 09:56:10
original
686 Les gens l'ont consulté

Why Do $(window).width() and CSS Media Queries Report Different Viewport Widths?

Largeur de fenêtre mesurée de manière incohérente entre $(window).width() et les requêtes multimédias CSS

Lors de l'utilisation de $(window).width de jQuery () pour déterminer la largeur de la fenêtre d'affichage, vous pouvez rencontrer des écarts avec la largeur calculée par les requêtes multimédias CSS. Cette différence peut être attribuée à divers facteurs, notamment la largeur de la barre de défilement du navigateur.

Pour résoudre ce problème, pensez à utiliser window.matchMedia(). Cette méthode fournit des calculs de largeur précis et cohérents avec les requêtes multimédias CSS. Il est pris en charge par tous les navigateurs modernes et peut être implémenté comme suit :

function checkPosition() {
    if (window.matchMedia('(max-width: 767px)').matches) {
        //...
    } else {
        //...
    }
}
Copier après la connexion

Solution alternative utilisant Modernizr :

Si la compatibilité du navigateur pose un problème, vous pouvez utiliser la méthode mq fournie par Modernizr. Il prend en charge tous les navigateurs qui comprennent les requêtes multimédias.

if (Modernizr.mq('(max-width: 767px)')) {
    //...
} else {
    //...
}
Copier après la connexion

Notez que l'utilisation de $(window).innerWidth() pour calculer la largeur de la fenêtre d'affichage, tout en tenant compte de la barre de défilement, n'est pas toujours la solution optimale car les largeurs des barres de défilement peuvent varier selon les navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal