Это потому, что вас показывают и прячут, а не анимируют непрозрачность.(Видимо: P).
Отредактированный код: http://jsbin.com/iquwuc/11/edit#preview
Вы можете внести следующие изменения, чтобы использовать настройку непрозрачности:
Добавьте следующий код:
.sub-menu li#access ul {opacity:0; display:none;}
И измените свой сценарий следующим образом:
$(document).ready(function(){
$('.sub-menu').hover(function(){
$('.sub-menu li#access ul').show();
$('.sub-menu li#access ul').stop().animate({opacity: 1, marginTop: "25"}, 500);
},
function() {
$('.sub-menu li#access ul').stop().animate({opacity: 0, marginTop: "10"}, 500,function(){
$('.sub-menu li#access ul').hide();
});
});
});
В основном происходит следующее:
При наведении курсора вы показываете раскрывающийся список с непрозрачностью 0, затем анимация устанавливает маржу и непрозрачность.и при наведении мыши увеличиваем непрозрачность до 0 и снова скрываем.