Voici un petit extrait de ce que j'essaie de faire: Ceci pourrait être fait avec CSS: P> var rmatrix = /matrix\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\)/;
jQuery.support.scaleTransformProp = (function() {
var div = document.createElement('div');
return div.style.MozTransform === '' ? 'MozTransform' :
div.style.WebkitTransform === '' ? 'WebkitTransform' :
div.style.OTransform === '' ? 'OTransform' :
div.style.MsTransform === '' ? 'MsTransform' :
false;
})();
if (jQuery.support.scaleTransformProp) {
jQuery.cssHooks['scale'] = {
get: function(elem, computed, extra) {
var transform = jQuery.curCSS(elem, jQuery.support.scaleTransformProp),
m = transform.match(rmatrix);
return m && parseFloat(m[1]) || 1.0;
},
set: function(elem, val) {
var transform = jQuery.curCSS(elem, jQuery.support.scaleTransformProp);
if (transform.match(rmatrix)) {
elem.style[jQuery.support.scaleTransformProp]= transform.replace(rmatrix, function(m, $1, $2, $3, $4, $5, $6) {
return 'matrix(' + [val, $2, $3, val, $5, $6].join(',') + ')';
});
} else {
elem.style[jQuery.support.scaleTransformProp]= 'scale(' + val + ')';
}
}
};
jQuery.fx.step.scale = function(fx) {
jQuery.cssHooks['scale'].set(fx.elem, fx.now)
};
}
/*SEMENTARA*/
$('#why-red a').hover(function() {
$(this).animate({
'scale' : 1.1
}, 200);
}, function() {
$(this).animate({
'scale': 1
}, 200);
});
5 Réponses :
Vous ne pouvez pas utiliser Cependant, vous n'avez pas besoin de jQuery du tout pour l'effet que vous êtes après. Vous pouvez combiner (voir: http://www.the-art-of-web.com/css/css-animation/ ) p> Si vous souhaitez que vous puissiez pouvoir pouvoir être capable de Appliquez le CSS via JQuery's de jQuery's's .animate () code> en conjonction avec CSS Transforms, au moins sans plugin, car la balance échelle () code> est non numérique et confondez-le. -webkit-transformer code> avec -webkit-transition code> (et -moz code> et -o code> équivalents) pour L'animation se transforme directement dans CSS. Par exemple: p> .CSS () CODE> On VOIR, mais cela n'est pas nécessaire. Ou si vous souhaitez appliquer des transitions CSS en utilisant jQuery: p>
Génial, mais cela semble loin pour IE: D.
@Adam, oui, il n'y a pas d'option CSS pour IE. Vous pouvez "dégrader gracieusement" cependant;)
Voir les démos de JQuery ayant une excellente source. P>
http://jqueryui.com/demos/toggleclass/ p>
Animation de couleur Animation de classe Montrer ma peau p>
juste à la volée .. p>
Si vous souhaitez Responsentiel GitHub du plugin. P> .animer () code> Les transitions utilisées automatiquement lorsqu'elles sont disponibles (et une animation régulière autrement), vous devez consulter " Améliorer la fonction d'animation de JQuery pour utiliser automatiquement les transitions CSS3 ". P >
Une autre option à ceux mentionnés ci-dessus est Transit JS.
Utilisation de Transit JS Vous pouvez appeler ... P>
$('.className').transition({ scale: 1.0, duration: 400 });
Je sais que cette question a été posée il y a des années, mais j'ai trouvé une solution pour un problème similaire, j'ai donc décidé de partager.
J'ai utilisé Voir exemple dans JSFIDDLE P> ou ce code d'extraction: P> p> @ - webkit-keyframes code> pour créer 2 animations. un avec .mouseover code> et un avec .mouseout code>.
Combinaison avec .AddClass code> et .RemoVeclass code> J'ai réussi à faire ce travail. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="why-red">
<a href="#">why-red a</a>
</div>
Merci pour ce commentaire, c'est exactement ce que je cherchais.