jQuery rotation/transformer
Je voudrais utiliser cette fonction pour faire tourner puis s'arrêter à un point particulier ou à un grade. Maintenant l'élément qui tourne sans s'arrêter. Voici le code:
<script type="text/javascript">
$(function() {
var $elie = $("#bkgimg");
rotate(0);
function rotate(degree) {
//For webkit browsers: e.g. Chrome
$elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
//For Mozilla browser: e.g. Firefox
$elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
//Animate rotation with a recursive call
setTimeout(function() { rotate(++degree); },65);
}
});
</script>
Merci pour votre aide
Vous devez vous connecter pour publier un commentaire.
Simplement supprimer la ligne qui permet de faire tourner un degré à la fois et appelle le script pour toujours.
Puis passer à la valeur désirée dans la fonction... dans cet exemple
45
de 45 degrés.Changement
.css()
à.animate()
pour animer la rotation avec jQuery. Nous avons également besoin d'ajouter une durée de l'animation, 5000 pendant 5 secondes. Et la mise à jour d'origine de votre fonction pour supprimer la redondance et de soutien de plus en plus de navigateurs...EDIT: La norme jQuery CSS animation de code ci-dessus n'est pas de travail parce qu'apparemment, jQuery
.animate()
ne prend pas encore en charge le CSS3transforms
.Ce plugin jQuery est censé animer la rotation:
http://plugins.jquery.com/project/QTransform
-webkit-transform
a été appliquée. Peut-être que votre navigateur ne prend pas en charge le CSS 3..css
à.animate
. Voir mon edit.animate()
ne prend pas en chargetransforms
je viens d'apprendre. Voici un plugin qui est censé le faire. plugins.jquery.com/project/QTransformC'est parce que vous avez une fonction récursive à l'intérieur de rotation. Il appelle lui-même à nouveau:
L'enlever et de ne pas continuer à courir de manière récursive.
Je dirais aussi simplement à l'aide de cette fonction à la place:
C'est beaucoup plus propre et va travailler pour le plus grand nombre de navigateurs.
Pourquoi ne pas simplement utiliser, toggleClass sur cliquez sur?
js:
css:
vous pouvez également l'ajouter dans le fichier css:
qui va ajouter de l'animation.
PS...
pour répondre à votre question initiale:
vous dit qu'il tourne mais ne s'arrête jamais. Lors de l'utilisation de temporisation, vous devez vous assurer que vous avez une condition qui n'ira pas en appel settimeout ou bien il va courir pour toujours. Alors, pour ton code:
Je suis venu avec une sorte de solution au problème. Il consiste à jquery et css. Cela fonctionne comme la bascule mais au lieu d'afficher /masquer les éléments qu'il modifie ses propriétés sur suppléant clics. En cliquant sur le div, il fait pivoter l'élément avec l'étiquette de 180 degrés et lorsque vous cliquez à nouveau l'élément avec la balise retourne à sa position d'origine. Si vous voulez changer l'animation de la durée viens de changer de transition-de la durée de la propriété.
CSS
jQuery
});
et
clearTimeout
pour arrêterJe l'utiliser avec l'AJAX