Transition CSS3 avec jQuery .addClass et .removeClass
J'ai un gros principal panneau de navigation que je veux animer lorsque c'est le déploiement (en expansion).
Je travaille avec jQuery pour déclencher la visibilité de celle-ci par l'ajout/retrait de la classe, le visible et le caché.
J'ai dû mettre un temps de retard à appliquer la classe caché parce que la gâchette est un bouton à l'extérieur de la div. (si j'ai utilisé un rollover sur le bouton, une fois que vous déploiement le panneau disparaît)
Le code est ce
$(document).ready(function() {
$('#menu-item-9').click(function(){
$('#repair-drop').removeClass('hidden');
$('#repair-drop').addClass('visible');
});
$('#repair-drop').on('mouseleave', function(e) {
setTimeout(function() {
$('#repair-drop').removeClass('visible').addClass('hidden');
}, 600);
});
});
Mon CSS est comme suit
.hidden{
max-height: 0px;
-webkit-transition: max-height 0.8s;
-moz-transition: max-height 0.8s;
transition: max-height 0.8s;
}
.visible{
max-height: 500px;
}
L'effet de transition ne fonctionne pas du tout.
source d'informationauteur Jaypee
Vous devez vous connecter pour publier un commentaire.
Vous sont l'ajout et la suppression de la classe qui contient la transition CSS. Je recommande à se déplacer qu'à sa propre règle DÉMO.
Je suis fatigué de cette question, une meilleure utilisation de l'animation:
Ajouter seulement .élément de la classe .l'animation et son travail:
Ne retirez pas la
.hidden
classe; il contient votretransition
les styles. Juste d'ajouter et de supprimer la.visible
classe.http://jsfiddle.net/mblase75/LjhNa/
Cela dit, vous pourriez avoir besoin pour améliorer votre solution de compte pour les utilisateurs rapidement le pointeur de la souris hors de
#repair-drop
et en cliquant sur#menu-item-9
avant il peut se cacher.http://jsfiddle.net/mblase75/b8QpB/
Avez-vous considéré l'utilisation de jQuery UI fonctions d'animation? comme
Vous pouvez également animer la suppression de la classe, comme
J'ai trouvé un moyen de faire fonctionner à l'aide de jquery easing plugin.
Merci à tous pour vos réponses