Вы можете построить с небольшой задержкой, скажем, 200 мс, чтобы анимация завершилась, чтобы она не была скачкообразной, но оставить .stop()
, чтобы она все равно не нарастала, как это:
$(function () {
$('#nav li').hover(function () {
clearTimeout($.data(this, 'timer'));
$('ul', this).stop(true, true).slideDown(200);
}, function () {
$.data(this, 'timer', setTimeout($.proxy(function() {
$('ul', this).stop(true, true).slideUp(200);
}, this), 200));
});
});
Вы можете попробовать здесь , этот подход использует $.data()
для хранения времени ожидания для элемента , поэтому каждое меню обрабатывается независимо, если у вас есть для многих пунктов меню это должно дать хороший эффект.