23 votes

Réinitialiser les valeurs css modifiées

J'ai...

$("#menu_tl").click(function() {

    $('.page').fadeOut();
    $('.page').animate({
        "width":  "0px", 
        "height": "0px", 
        "top":    "50px", 
        "left":   "50px"
    });

    $('#page1').fadeIn();
    $('#page1').animate({
        "width":  "500px", 
        "height": "400px", 
        "top":    "-350px", 
        "left":   "-450px"
    }, 2000);
});

$("#menu_tr").click(function() {

    $('.page').fadeOut();
    $('.page').animate({
        "width":  "0px", 
        "height": "0px", 
        "top":    "50px", 
        "left":   "50px"
    });

    $('#page2').fadeIn();
    $('#page2').animate({
        "width":  "500px", 
        "height": "400px"
    }, 2000);
});

Mais je veux dire que lorsque la deuxième fonction est cliquée, toutes les modifications de style apportées par la première doivent être réinitialisées. Cela signifie que la ligne suivante est incorrecte :

$('.page').animate({
    "width":  "0px", 
    "height": "0px", 
    "top":    "50px", 
    "left":   "50px"
});

est incorrecte et doit être remplacée par une réinitialisation globale. J'espère que c'est assez clair...

55voto

c-smile Points 8609

Cela

$('.page').css({"width":"", "height":"", "top": "", "left" : ""});

devrait faire la magie pour vous.

3voto

hitautodestruct Points 3220

Stockez les valeurs css initiales que vous allez modifier dans une variable :

var $page = $('.page'),
    initialCss = {
        width:  $page.css('width'),
        height: $page.css('height'),

        // Pourrait également être .css('top'), .css(left')
        // dépend de votre feuille de style initiale
        top:    $page.position().top + 'px',
        left:   $page.position().left + 'px'
    };

$("#menu_tr").click(function(){

    $page.animate( initialCss, 2000 );

});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X