Une fonction de plug-in en tant que tel vous permettra de faire ce que vous voulez:
jQuery.fn.rotateClasses = function(classes, interval, max) {
var currentRotation = 0;
var timer = null;
var rotateFn = (function() {
var currentClass = currentRotation % classes.length;
var previousClass = currentClass - 1;
if(previousClass == -1) previousClass = classes.length - 1;
this.addClass(classes[currentClass]).removeClass(classes[previousClass]);
currentRotation += 1;
if(max > 0 && currentRotation >= max) clearInterval(timer);
})();
timer = setInterval(rotateFn, interval);
return this;
};
Ensuite, vous pouvez simplement l'appeler en utilisant les éléments suivants:
$('#mydiv').rotateClasses(["class1", "class2", "class3"], 1000, 20);
simplement modifier les paramètres comme tu souhaites. Le premier paramètre est un tableau de classes à faire pivoter, le second est l'intervalle pour les faire pivoter et le troisième est le nombre maximum d'itérations. S'il est défini sur 0
, il itère sur ad-infinitum.
Cela devrait être possible, mais pourriez-vous vraiment nous dire pourquoi diable voulez-vous faire cela? –