Попробуй останавливать анимацию, перед началом новой
$(window).scroll(function(){
if ($(this).scrollTop() > 1){
$(".top_panel").stop().animate({height: "60px"}, 200);
$(".logo_cont").stop().animate({lineHeight: "60px"}, 200);
$(".main_menu").stop().animate({lineHeight: "60px"}, 200);
}else{
$(".top_panel").stop().animate({height: "90px"}, 200);
$(".logo_cont").stop().animate({lineHeight: "90px"}, 200);
$(".main_menu").stop().animate({lineHeight: "90px"}, 200);
}
});
А вообще, для оптимизации нужно запускать только один раз анимацию
var flagPosition=0;
$(window).scroll(function(){
if ($(this).scrollTop() > 1){
if(flagPosition!=1) {
flagPosition=1;
$(".top_panel").stop().animate({height: "60px"}, 200);
$(".logo_cont").stop().animate({lineHeight: "60px"}, 200);
$(".main_menu").stop().animate({lineHeight: "60px"}, 200);
}
} else {
if(flagPosition!=0) {
flagPosition=0;
$(".top_panel").stop().animate({height: "90px"}, 200);
$(".logo_cont").stop().animate({lineHeight: "90px"}, 200);
$(".main_menu").stop().animate({lineHeight: "90px"}, 200);
}
}
});