J'ai un cercle avec des icônes placées autour de lui en utilisant CSS. Sur mouseenter ou clic, le contenu html est stocké comme une variable appartenant à l'icône et sortie au centre du cercle. Chaque icône a une classe qui détermine sa position. (par exemple, premier, deuxième, troisième, etc.).Récupérer la classe de chaque élément et passer à l'élément suivant dans la ligne - comme un round robin
Je souhaite déplacer l'icône active vers le haut (en premier) et positionner tous les autres en ligne respectivement. Donc, si je clique/mouseenter sur l'icône avec une classe de "troisième", je voudrais: a) enlever la classe 'active' de l'élément actif (done) b) ajouter la classe 'active' à cette classe element (done) c) change la classe de cet élément en 'first', ce qui ferait que la classe du quatrième élément soit 'second', la cinquième 'third' et ainsi de suite sur la ligne. J'ai commencé par faire 'each' pour stocker la classe actuelle dans une variable, mais je vais ensuite au parent() pour changer la classe attr(), mais je n'ai pas compris comment le faire dans un round robin style pour déplacer la classe sur toute la ligne. Vous pouvez voir ci-dessous le code pour déplacer la classe 'active' ainsi que le contenu html. J'ai aussi un codepen moqué ici: https://codepen.io/jphogan/pen/KqdNYZ
// on circle click add/remove class and replace html
$('.icon_circle_container .icon_circle').on('mouseenter click', function() {
// if it's already active, do nothing, but return false
if ($(this).hasClass('active')) {
return false;
} else {
// otherwise...
$('.icon_circle_container .icon_circle.active').removeClass('active'); // remove active class from element that has it
$(this).addClass('active'); // add active class to this element
newData = $(this).find('.icon_circle_content').html(); //store html as attribute
$('.icon_circle_container .center .icon_circle_content').fadeOut(function() { // fade out old content
$(this).html(newData).fadeIn(); // fade in new html content
}); // replace with stored data
return false;
}
})
Cela a fonctionné! Je vous remercie – jphogan