Détecter le changement d'une requête média CSS avec JavaScript
Concept et utilisation
La fonction MediaQueryChange()
permet de détecter les changements de requêtes média CSS utilisées en responsive design.
Constructeur
MediaQueryChange()
Retourne un objet détecteur de changement de requête média.
- Syntaxe
new MediaQueryChange(propriete, valeur);
- Paramètres
propriete
(String)Le paramètre
propriete
de l'interfaceMediaQueryChange()
définit la propriété CSS de la requête média que le détecteur prendra en compte en cas de changement de valeur.valeur
(string)Le paramètre
valeur
de l'interfaceMediaQueryChange()
définit la valeur CSS que le détecteur prendra en compte en cas de changement pour la propriété de la requête média.
- Méthodes de l'instance
detecteur.addListener()
La méthode
addListener()
de l'interfaceMediaQueryChange()
ajoute un écouteur au détecteur de changement de valeur pour la propriété de la requête média.- Syntaxe
detecteur.addListener(ecouteur);
- Paramètre
ecouteur
(Function)Le paramètre
ecouteur
de la méthodeaddListener()
est un écouteur de changement de valeur de la propriété de la requête média, qui sera ajouté au détecteur.
detecteur.removeListener()
La méthode
removeListener()
de l'interfaceMediaQueryChange()
supprime un écouteur du détecteur de changement de valeur de la requête média.- Syntaxe
detecteur.removeListener(ecouteur);
- Paramètre
ecouteur
(Function)Le paramètre
ecouteur
de la méthoderemoveListener()
est un écouteur de changement de valeur de la propriété de la requête média, qui sera supprimé du détecteur.
Exemple de détection de changement d'une requête média
var propriete = 'min-width';
var valeur = '1000px';
var detecteur = new MediaQueryChange(propriete, valeur);
var ecouteur = function(e) {
console.log(e.matches); // renvoie : true ou false
// detecteur.removeListener(ecouteur);
};
detecteur.addListener(ecouteur);
Code source de la fonction
function MediaQueryChange(k,v){var _=this,a=[];
_.addListener=function(f){a.push(f);};
_.removeListener=function(f){var i=a.indexOf(f);
if(i>-1){a.splice(i,1);}};
window.matchMedia('('+k+': '+v+')')
.addEventListener('change',function(o){
for(var i=0,j=a.length;i<j;i++){a[i](o);}});
return _;}
Dernière mise à jour le .