0
Il est mon menu sans animation: https://jsfiddle.net/sj0pycb7/5/animation menu déroulant avec JS
Lorsque je tente d'ajouter un code comme ça ne fonctionne pas correctement.
;(function(){
var height = 1;
var intervalID;
var get = document.getElementsByClassName('dropdown');
var set = document.querySelector('.menu .dropdown ul');
get[0].addEventListener('mouseover', function(){
startAnim();
}, false);
get[0].addEventListener('mouseout', function(){
stopAnim();
set.style.display = 'none';
}, false);
function startAnim(){
intervalID = setInterval(increaseHeight, 10);
set.style.overflow = 'hidden';
}
function stopAnim(){
set.removeAttribute('style');
set.style.display = 'none';
clearInterval(intervalID);
height = 1;
}
function increaseHeight(){
if(height){
height += 5;
height++;
set.style.height = height + 'px';
set.style.display = 'inline-block';
}
if(height>210){
height = 0;
clearInterval(intervalID);
set.removeAttribute('style');
set.style.display = 'inline-block';
}
}
})();
Le problème est que l'événement 'mouseout' exécute (display: none) quand je planant entre les ancres de menu déroulant. Supprimer la marge et les bordures n'aide pas.
Quel est l'effet que vous essayez d'accomplir? D'après ce que je peux vous dire, vous n'avez pas besoin de js pour tout ça et tout peut être fait en CSS. –