Bonjour,
J'ai dans ma page un block qui a pour propriété margin: auto;. J'aimerais en Javascript le faire sortir de la page avec une animation. Pour ça, j'ai fait:
$("#div").animate ({marginLeft: "2000px"}, 1000);
L'animation se fait bien, mais juste avant de partir vers la droite, mon block se repositionne tout à gauche de la page, comme si jQuery annulait les valeurs de la propriété margin avant d'assigner les nouvelles. J'ay essayé de mettre ceci avant ma ligne d'animation:
$("#logo-wrap").css("margin-left", $("body").css('width')/2);
Pour fixer la valeur de margin-left, mais ça ne change rien.
Quelqu'un sait-il comment faire?
J'ai finalement la solution, c'est la propriété .css(width) qui posait problème. Il fallait mettre .width(). J'ai donc le code suivant:
$("#div").css("margin-left", ($("body").width()-$("#div").width())/2).animate ({marginLeft: 3000}, 1000);
Salut,
Ton code ne marche pas. J'ai fait ça:
$("#div").animate({marginLeft: $(this).offset().left+2000+"px"}, 1000);
Et j'ai toujours le même problème.
Après avoir appliqué l'effet JS il faut peut-être stopper les animations en cours. Explication sur le stop ici : LIEN.
? Dis moi si ça marche.
Non, j'ai essayé $("#div").stop(); avant et après ma ligne d'animation, ça ne marche pas. J'ai aussi mis:
$("#div").stop().animate();
Mais, rien ne change :(.
Normalement (enfin pour ma part) je met toujours le stop() derrière le animate pour mes animations. ce qui aurait ici donné :
$("div").stop().animate({marginLeft(this).offset().left+2000+"px"},1000);
Bisard car généralement il e nfaut un :/ . Faut que tu te renseigne sur l'animation des positions, tu sauras comment faire ( suis le lien que je t'ai donné peut-être que t'auras de l'aide , je pense ^^ )
Sympa d'avoir partagé ta solution elle sera utie à d'autre j'espère, si tu as réglés le soucis, appuis sur le petit icône vers pour valider ta réponse :)