2013-12-07 2 views
0

Привет, ребята, было интересно, есть ли другой способ написать следующий запрос в более компактном формате. Ниже вы можете увидеть мой код.Код jquery сделать более компактным

$('footer').mouseover(function(){ 
    $(this).stop().animate({height:90}, 750); 
     $('#up').stop().animate({opacity:0},450); 
     $('#link-container').stop().animate({opacity:1},750); 
     }); 
$('footer').mouseout(function(){ 
    $(this).stop().animate({height:22}, 750); 
     $('#up').stop().animate({opacity:1},450); 
     $('#link-container').stop().animate({opacity:0},750); 
     }); 
+2

10 линий o f код. Насколько компактнее, по вашему мнению, это возможно? Не тратьте время на микро-оптимизацию: поработайте над чем-то более полезным. –

+0

Вы можете сделать его более кратким с помощью Google Closure Compiler: http://closure-compiler.appspot.com/home –

+0

Спасибо @AndersonGreen, что это довольно удивительно. –

ответ

1

Вы можете реорганизовать код в функцию, которая принимает параметры для значений, которые отличаются:

function anim(e, h, op) { 
    $(e).stop().animate({height:h}, 750); 
    $('#up').stop().animate({opacity:op},450); 
    $('#link-container').stop().animate({opacity:1-op},750); 
} 

Затем цепью два привязки:

$('footer').mouseover(function(){ 
    anim(this, 90, 0); 
}).mouseout(function(){ 
    anim(this, 22, 1); 
}); 
0

хорошо вы могли бы приковать функциональные привязки:

$('footer').mouseover(function(){ 
    $(this).stop().animate({height:90}, 750); 
     $('#up').stop().animate({opacity:0},450); 
     $('#link-container').stop().animate({opacity:1},750); 
}).mouseout(function(){ 
    $(this).stop().animate({height:22}, 750); 
     $('#up').stop().animate({opacity:1},450); 
     $('#link-container').stop().animate({opacity:0},750); 
}); 
+0

Спасибо, что это работает для меня –

Смежные вопросы