Détecter le support pour la transition avec JavaScript
Je veux servir les différents fichiers javascript en fonction de si le navigateur prend en charge CSS3 transition ou pas. Est-il un meilleur moyen de détecter de soutien à la transition que mon code ci-dessous?
window.onload = function () {
var b = document.body.style;
if(b.MozTransition=='' || b.WebkitTransition=='' || b.OTransition=='' || b.transition=='') {
alert('supported');
} else {
alert('NOT supported')
}
}
source d'informationauteur user1087110
Vous devez vous connecter pour publier un commentaire.
Modernizr détectera pour vous. Utilisation ce lien pour créer une version de téléchargement qui contient uniquement des CSS3 2D et/ou 3D transitions.
Une fois qu'il est exécuté, vous pouvez tester la
csstransitions
classe sur lehtml
tag (CSS), ou en JavaScript, tester siModernizr.csstransitions
esttrue
.Plus de docs: http://modernizr.com/docs/#csstransitions
Je pense aussi, y compris Modernizr est une overkill. La fonction ci-dessous qui devrait fonctionner pour toute fonction.
Inspiré par https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_animations/Detecting_CSS_animation_support
Voici un autre test de code. Peut-être que c'est exagéré, mais la fonction tente de définir la propriété CSS pour objet DOM et puis lisez à partir d'elle.
Jamais testé ce code sur la grande quantité de l'exotisme des navigateurs, mais il est plus sûr que la simple vérification de la propriété CSS disponibilité. Ah, oui, ça permet de les distinguer de transformation 2D soutien de transformation 3D de soutien! Il suffit de passer les valeurs des propriétés CSS que vous souhaitez tester!
Le plus de ce code est qu'il détecte le vendeur préfixe de prise en charge (le cas échéant). Valeurs de retour possibles:
false
lors de la fonctionnalité non prise en charge, oulors de la fonctionnalité prise en charge
Github: https://github.com/easy-one/CSS3test
Avec Modernizr 3.0 (alpha), vous pouvez générer personnalisé construit localement. Cela peut résoudre le fameux "overkill" préoccupation, bien que je ne suis pas tout à fait clair sur qui concernent en premier lieu (mais je suppose que c'est la taille). La nouvelle api fournit un "build " méthode", à laquelle vous pouvez passer json contenant les tests que vous souhaitez inclure dans la construction.
Je utiliser quelque chose comme cela dans ma gorgée de fichier mais gulp n'est pas nécessaire - un nœud simple script va faire.
Et un exemple de la " modernizr-config.json " fichier serait
Le plein de fichier de configuration est inclus dans le Modernizr paquet.
Avec cette approche, vous pouvez profiter du bien entretenu Modernizr suite de tests via des programmes d'installation de packages et facilement ajouter/supprimer des tests au besoin. Moins de tests, fichier plus petit évidemment.
Le "setClasses' option ajouter la classe de test dans votre code html, mais vous pouvez également profiter de la 3.0 évènements asynchrones comme suit: