2010-11-02 10 views
0

J'ai un script d'animation jquery qui fonctionne correctement, cependant, je pense qu'il y a un moyen de réduire la surcharge globale pour le script. Voici un lien vers la page de développement:Vous cherchez à condenser mon script d'animation Jquery

http://dev.abinstallations.com

Il y a deux parties à l'animation, et ces animations s'appliquent à six éléments individuels div. Un script séparé est appliqué à chaque élément. Par exemple:

//First 
$("#first_flip").hide(); 
$("#first_button_show").click(function(){ 
    $('#first_flip').animate({ 
    opacity: 'toggle', 
    top: '+=524', 
    height: 'toggle'}, 600, function() { 
     // Animation complete. 
    }); 
}); 
$("#first_button_hide").click(function(){ 
    $('#first_flip').animate({ 
    opacity: 'toggle', 
    top: '-=524', 
    height: 'toggle'}, 400, function() { 
     // Animation complete. 
    }); 
}); 

//Second 
$("#second_flip").hide(); 
$("#second_button_show").click(function(){ 
    $('#second_flip').animate({ 
    opacity: 'toggle', 
    top: '+=524', 
    height: 'toggle'}, 600, function() { 
     // Animation complete. 
    }); 
}); 
$("#second_button_hide").click(function(){ 
    $('#second_flip').animate({ 
    opacity: 'toggle', 
    top: '-=524', 
    height: 'toggle'}, 400, function() { 
     // Animation complete. 
    }); 
}); 

... et ainsi de suite pour les quatre éléments restants. Existe-t-il un moyen condensé pour y parvenir?

+1

le lien que vous avez posté est mort .. puisque le code est le même pour tous les boutons, il devrait être capable de le condenser en une seule occurence, mais nous devons d'abord voir le html .. –

+0

Gaby - Merci d'avoir attrapé ça. Le nouveau lien est dev.abinstallationsinc.com – David

Répondre

0

Vous pouvez tirer comme fonction:

Hook("first"); 
Hook("second"); 

function Hook(id) 
{ 
    $("#" + id + "_flip").hide(); 
    $("#" + id + "_button_show").click(function(){ 
     $("#" + id "_flip").animate({ 
     opacity: 'toggle', 
     top: '+=524', 
     height: 'toggle'}, 600, function() { 
      // Animation complete. 
     }); 
    }); 
    $("#" + id + "_button_hide").click(function(){ 
     $("#" + id + "_flip").animate({ 
     opacity: 'toggle', 
     top: '-=524', 
     height: 'toggle'}, 400, function() { 
      // Animation complete. 
     }); 
    }); 
} 

Ou même faire la fonction prendre plusieurs paramètres et boucle sur eux.

+0

Mikael, votre solution est parfaite. Merci beaucoup! – David