Table des matières
Rotation entre navigateurs avec jQuery.animate()
Problème
Solution
Plugin jQuery
Plugin optimisé
Utilisation
Conclusion
Maison interface Web tutoriel CSS Pourquoi jQuery.animate() ne fonctionne-t-il pas pour les rotations CSS3, et comment pouvons-nous réaliser des rotations animées entre navigateurs à l'aide de jQuery ?

Pourquoi jQuery.animate() ne fonctionne-t-il pas pour les rotations CSS3, et comment pouvons-nous réaliser des rotations animées entre navigateurs à l'aide de jQuery ?

Dec 04, 2024 am 07:57 AM

Why doesn't jQuery.animate() work for CSS3 rotations, and how can we achieve cross-browser animated rotations using jQuery?

Rotation entre navigateurs avec jQuery.animate()

Problème

La rotation entre navigateurs avec jQuery.animate() s'avère difficile en raison de la capacités de non-animation de CSS-Transforms. Le code ci-dessous illustre le problème :

$(document).ready(function () { 
    DoRotate(30);
    AnimateRotate(30);
});

function DoRotate(d) {

    $("#MyDiv1").css({
          '-moz-transform':'rotate('+d+'deg)',
          '-webkit-transform':'rotate('+d+'deg)',
          '-o-transform':'rotate('+d+'deg)',
          '-ms-transform':'rotate('+d+'deg)',
          'transform': 'rotate('+d+'deg)'
     });  
}

function AnimateRotate(d) {

        $("#MyDiv2").animate({
          '-moz-transform':'rotate('+d+'deg)',
          '-webkit-transform':'rotate('+d+'deg)',
          '-o-transform':'rotate('+d+'deg)',
          '-ms-transform':'rotate('+d+'deg)',
          'transform':'rotate('+d+'deg)'
     }, 1000); 
}

La rotation fonctionne lors de l'utilisation de .css(), mais pas avec .animate(). Pourquoi? Et comment pouvons-nous surmonter cet obstacle ?

Solution

Bien que les transformations CSS ne prennent pas en charge l'animation directe dans jQuery, une solution de contournement est possible en utilisant un rappel par étapes comme celui-ci :

function AnimateRotate(angle) {
    // Cache the object for performance
    var $elem = $('#MyDiv2');

    // Use a pseudo object for the animation (starts from `0` to `angle`)
    $({deg: 0}).animate({deg: angle}, {
        duration: 2000,
        step: function(now) {
            // Use the `now` parameter (current animation position) in the step-callback
            $elem.css({
                transform: 'rotate(' + now + 'deg)'
            });
        }
    });
}

Cette méthode permet la rotation des éléments à l'aide de jQuery. De plus, jQuery 1.7 élimine le besoin de préfixes de transformation CSS3.

Plugin jQuery

Pour simplifier le processus, créez un plugin jQuery comme celui-ci :

$.fn.animateRotate = function(angle, duration, easing, complete) {
  return this.each(function() {
    var $elem = $(this);

    $({deg: 0}).animate({deg: angle}, {
      duration: duration,
      easing: easing,
      step: function(now) {
        $elem.css({
           transform: 'rotate(' + now + 'deg)'
         });
      },
      complete: complete || $.noop
    });
  });
};

$('#MyDiv2').animateRotate(90);

Plugin optimisé

Pour une meilleure efficacité et flexibilité, un plugin optimisé peut être créé :

$.fn.animateRotate = function(angle, duration, easing, complete) {
  var args = $.speed(duration, easing, complete);
  var step = args.step;
  return this.each(function(i, e) {
    args.complete = $.proxy(args.complete, e);
    args.step = function(now) {
      $.style(e, 'transform', 'rotate(' + now + 'deg)');
      if (step) return step.apply(e, arguments);
    };

    $({deg: 0}).animate({deg: angle}, args);
  });
};

Utilisation

Le plugin propose deux façons de l'utiliser :

  1. Syntaxe sur une seule ligne :
$(node).animateRotate(90);
$(node).animateRotate(90, function () {});
$(node).animateRotate(90, 1337, 'linear', function () {});
  1. Syntaxe objet (de préférence pour plus de trois arguments) :
$(node).animateRotate(90, {
  duration: 1337,
  easing: 'linear',
  complete: function () {},
  step: function () {}
});

Conclusion

Ce plugin permet la rotation CSS entre navigateurs en utilisant les capacités d'animation de jQuery. Il élimine le besoin de calculs de rotation manuels et fournit un moyen pratique et optimisé d'obtenir des effets de rotation.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1535
276
Quelles sont les incohérences courantes du navigateur CSS? Quelles sont les incohérences courantes du navigateur CSS? Jul 26, 2025 am 07:04 AM

Différents navigateurs ont des différences dans l'analyse CSS, ce qui entraîne des effets d'affichage incohérents, y compris principalement la différence de style par défaut, la méthode de calcul du modèle de boîte, le niveau de support Flexbox et la disposition de la grille et le comportement incohérent de certains attributs CSS. 1. Le traitement de style par défaut est incohérent. La solution consiste à utiliser cssreset ou normaliser.css pour unifier le style initial; 2. La méthode de calcul du modèle de boîte de l'ancienne version de IE est différente. Il est recommandé d'utiliser la taille d'une boîte: Border-Box de manière unifiée; 3. Flexbox et Grid fonctionnent différemment dans les cas de bord ou dans les anciennes versions. Plus de tests et utilisent Autoprefixer; 4. Certains comportements d'attribut CSS sont incohérents. Caniuse doit être consulté et rétrogradé.

Quelle est la propriété Accent-Color? Quelle est la propriété Accent-Color? Jul 26, 2025 am 09:25 AM

Accent-Color est un attribut utilisé dans CSS pour personnaliser les couleurs de surbrillance des éléments de formulaire tels que les cases à cocher, les boutons radio et les curseurs; 1. Il modifie directement la couleur par défaut de l'état sélectionné du contrôle de formulaire, tel que la modification de la coche bleue de la case en rouge; 2. Les éléments pris en charge incluent les cases d'entrée de type = "Checkbox", Type = "Radio" et Type = "Range"; 3. L'utilisation de la couleur accent peut éviter les styles personnalisés complexes et les structures DOM supplémentaires et maintenir l'accessibilité native; 4. Il est généralement soutenu par des navigateurs modernes et les anciens navigateurs doivent être rétrogradés; 5. Set Accent-Col

Décrire la propriété `` Vertical-Align 'et ses cas d'utilisation typiques Décrire la propriété `` Vertical-Align 'et ses cas d'utilisation typiques Jul 26, 2025 am 07:35 AM

Thevertical-AlignPropertyInSsalignSInLineRable-cellElementsvertical.1.itAdjustSelements like iMageSorforminputSwithIntextlinesususingValues Like-Baseline, Middle, Super, andSub.2

Comment purger le CSS inutilisé? Comment purger le CSS inutilisé? Jul 27, 2025 am 02:47 AM

UseAutomatedToolsLILLPURECCSSORUNCSSTOSCANAnDRemoveUnusedcSSS; 2. IntegratepurgingIntOyourBuildProcessViaWebpack, Vite, Ortailwind’sContentConfiguration; 3.AuditcssagewithChromedevToolscoveragetaforepurgoEToavoidRemovingNededStyles.

Comment changer la couleur du texte dans CSS? Comment changer la couleur du texte dans CSS? Jul 27, 2025 am 04:25 AM

Pour modifier la couleur du texte dans CSS, vous devez utiliser l'attribut de couleur; 1. Utilisez l'attribut de couleur pour définir la couleur de la couleur de premier plan du texte, en prenant en charge les noms de couleurs (tels que le rouge), les codes hexadécimaux (tels que # FF0000), les valeurs RGB (telles que RVB (255,0,0)), les valeurs HSL (comme HSL (0,100%, 50%)) et RGBA ou HSLA avec transparence (tels que comme le fait de transparence (tels que les 50%) et RGBA ou HSLA avec transparence (tels que celles RGBA (255,0,0,0,5)); 2. Vous pouvez appliquer des couleurs à n'importe quel élément contenant du texte, tel que H1 aux titres H6, paragraphe P, lien A (Remarque les paramètres de couleur de différents états de A: Link, A: Visité, A: Hover, A: Active), Butons, Div, Span, etc.; 3. La plupart

Exemple de bascule du mode sombre CSS Exemple de bascule du mode sombre CSS Jul 30, 2025 am 05:28 AM

Tout d'abord, utilisez JavaScript pour obtenir les préférences du système utilisateur et les paramètres de thème stockés localement et initialiser le thème de la page; 1. La structure HTML contient un bouton pour déclencher la commutation du sujet; 2. CSS utilise: Root pour définir des variables de thème brillantes, la classe de mode. Dark définit les variables de thème sombres et applique ces variables via var (); 3. JavaScript détecte préfère-Color-Scheme et lit LocalStorage pour déterminer le thème initial; 4. Communiquez la classe en mode noir sur l'élément HTML lorsque vous cliquez sur le bouton et enregistre l'état actuel vers LocalStorage; 5. Tous les changements de couleur sont accompagnés d'une animation de transition de 0,3 seconde pour améliorer l'utilisateur

Comment utiliser la propriété CSS Backdrop-Filter? Comment utiliser la propriété CSS Backdrop-Filter? Aug 02, 2025 pm 12:11 PM

Le filtre de fond est utilisé pour appliquer des effets visuels au contenu derrière les éléments. 1. Utilisez le filtre en toile de fond: flou (10px) et autre syntaxe pour obtenir l'effet de verre givré; 2. Prend en charge plusieurs fonctions de filtre telles que le flou, la luminosité, le contraste, etc. et peut être superposé; 3. Il est souvent utilisé dans la conception des cartes en verre, et il est nécessaire de s'assurer que les éléments chevauchent l'arrière-plan; 4. Les navigateurs modernes ont un bon support et @Supports peut être utilisé pour fournir des solutions de rétrogradation; 5. Évitez les valeurs de flou excessive et redémarrez fréquents pour optimiser les performances. Cet attribut ne prend effet que lorsqu'il y a du contenu derrière les éléments.

Quelle est la propriété Aspect-Ratio CSS et comment l'utiliser? Quelle est la propriété Aspect-Ratio CSS et comment l'utiliser? Aug 04, 2025 pm 04:38 PM

TheSpect-RatiocssproperTyDeFinesthewidth to-heightratioofanellement, assurant des proportions consommées de réponse

See all articles