Maison  >  Article  >  interface Web  >  Deux façons d'utiliser JavaScript pour déterminer les compétences prefix_javascript du type de navigateur CSS

Deux façons d'utiliser JavaScript pour déterminer les compétences prefix_javascript du type de navigateur CSS

WBOY
WBOYoriginal
2016-05-16 15:37:171121parcourir

Peu importe à quel point nous détestons les préfixes de type de navigateur, nous devons tous y faire face quotidiennement, sinon quelque chose ne fonctionnera pas correctement. Il existe deux manières d'utiliser ces préfixes : en CSS (comme "-moz-") et en JS. Il existe un projet X-Tag incroyable avec un script JavaScript intelligent qui peut être utilisé pour déterminer quel préfixe est actuellement utilisé - laissez-moi vous montrer comment cela fonctionne !

Par exemple, le préfixe CSS est "-ms-" pour IE, "-o-" pour l'ancienne version d'Opera, "-moz-" pour Firefox et "-webkit-" pour Safari/Chrome . JavaScript dispose de plusieurs façons de les déterminer.

Méthode 1 : Jugement des caractéristiques

// 取浏览器的 CSS 前缀
var prefix = function() {
  var div = document.createElement('div');
  var cssText = '-webkit-transition:all .1s; -moz-transition:all .1s; -o-transition:all .1s; -ms-transition:all .1s; transition:all .1s;';
  div.style.cssText = cssText;
  var style = div.style;
  if (style.webkitTransition) {
    return '-webkit-';
  }
  if (style.MozTransition) {
    return '-moz-';
  }
  if (style.oTransition) {
    return '-o-';
  }
  if (style.msTransition) {
    return '-ms-';
  }
  return '';
}();

Créez un div, ajoutez-y les styles CSS de préfixe -webkit-, -moz-, -o-, -ms-, puis récupérez le style et utilisez style.xxxTransition pour déterminer de quel préfixe il s'agit.

Méthode 2 : getComputedStyle récupère tous les styles de documentElement puis les analyse

Récupérez d'abord les styles via window.getComputedStyle et convertissez les styles en un tableau

var styles = window.getComputedStyle(document.documentElement, '');
var arr = [].slice.call(styles);
console.log(arr);

Firefox arr est le suivant

Chrome arr est le suivant

Vous pouvez voir que les noms de préfixes CSS implémentés par chaque navigateur sont obtenus.

Concaténez tous les attributs dans une chaîne, puis utilisez la correspondance d'expression régulière pour trouver le préfixe

// 取浏览器的 CSS 前缀
var prefix = function() {
  var styles = window.getComputedStyle(document.documentElement, '');
  var core = (
    Array.prototype.slice
    .call(styles)
    .join('')
    .match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
  )[1];
  return '-' + core + '-';
}();

On voit que la méthode 2 a beaucoup moins de code que la méthode 1. Les méthodes 1 et 2 utilisent des fonctions anonymes pour renvoyer des résultats après une exécution unique. Il n'est pas nécessaire d'appeler la fonction à chaque fois.

Le contenu ci-dessus montre comment l'éditeur présente deux méthodes pour utiliser JavaScript pour déterminer le préfixe du type de navigateur CSS. J'espère que vous l'aimerez.

Déclaration:
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