Partage
  • Partager sur Facebook
  • Partager sur Twitter

Modifier progressivement margin-left

Sujet résolu
    10 février 2010 à 18:26:13

    Salutation à tous le monde

    Donc après avoir fait quelques tentatives infructueuses et demander plusieurs fois plus ou moins poliment à google, je viens demander votre aide.

    Je voudrai faire défiler progressivement la div numero1 pour qu'il se cale sur les div numero2, numero3 et numero4 en modifiant margin-left de la div numero1.
    Comme sur ce schéma fait à l'arrache:
    Image utilisateur

    J'ai déjà fait un truc pour que ça se cale sur les div numero2, numero3 et numero4:
    <a href="#" onclick="javascript:document.getElementById('numero1').style.marginLeft='0px'; var param={ url:'numero2.php', callback:function(txt){document.getElementById('numero2').innerHTML=txt;} }; ajax(param);"/>numero2</a> <br>
    <a href="#" onclick="javascript:document.getElementById('numero1').style.marginLeft='-817px'; var param={ url:'numero3.php', callback:function(txt){document.getElementById('numero3').innerHTML=txt;} }; ajax(param);"/>numero3 <br>
    <a href="#" onclick="javascript:document.getElementById('numero1').style.marginLeft='-1634px'; var param={ url:'numero4.php', callback:function(txt){document.getElementById('numero4').innerHTML=txt;} }; ajax(param);"/>numero4<br>
    

    "var param={ url:'numero4.php', callback:function(txt){document.getElementById('numero4').innerHTML=txt;} }; ajax(param);" c'est un truc pour faire appelle à fichier sans recharger le page avec AJAX (que un zéro m'avais déjà généreusement donné.

    Voila la question est comment remplacer "document.getElementById('numero1').style.marginLeft='-817px';" par une fonction qui fasse la même chose mais en faisant un défilement styliser

    J'espère avoir été claire, merci d'avance, désoler pour toutes mes fautes d'orthographes et croyez moi je le fait pas exprès pour vous embêter :euh:

    • Partager sur Facebook
    • Partager sur Twitter
      10 février 2010 à 18:33:04

      function defiler(div,but) {
        var margin_act = parseInt(div.style.marginLeft,10);
        if(margin_act<but) {
          margin_act++;
        } else {
          margin_act--;
        }
        if(margin_act!=but) {
          setTimeout(function(){
            defiler(div,but);
          },20);
        }
      }
      


      Une fonction devrait, je pense, faire l'affaire.

      Mais elle n'est pas parfaite ; il ne tient qu'à toi de l'améliorer.

      <a href="#" onclick="defiler(document.getElementById('numero1'),0); var param={ url:'numero2.php', callback:function(txt){document.getElementById('numero2').innerHTML=txt;} }; ajax(param);"/>numero2</a> <br>
      


      Note : Il faut que le marginLeft du div1 soit précisé dans l'attribut style dès le chargement de la page.
      • Partager sur Facebook
      • Partager sur Twitter
        10 février 2010 à 20:17:46

        Merci mais je l'ai intégré à ma page et il ne fonctionne pas qu'es qui se passe ?
        Pourtant je l'ai intégré comme il faut.
        • Partager sur Facebook
        • Partager sur Twitter
          10 février 2010 à 20:24:26

          Bah j'en sais rien moi, j'ai codé ça comme ça pour te montrer le principe. J'ai jamais dit que ça allait fonctionner du premier coup >_<

          Qui plus est, sans ton code complet, je vois mal comment je vais m'y prendre pour t'aider. >_<
          • Partager sur Facebook
          • Partager sur Twitter
            11 février 2010 à 23:59:21

            Merci après mettre repencher sur le script j'ai pu le refaire et donc ma situation semble débloquer :)

            Donc merci et je m'excuse du désagrément ;)
            • Partager sur Facebook
            • Partager sur Twitter
              12 février 2010 à 3:11:20

              Ah oui, en fait je viens de voir que j'avais lamentablement oublié la ligne qui modifie le style :-°

              Content que tu aies trouvé par toi-même :)
              • Partager sur Facebook
              • Partager sur Twitter

              Modifier progressivement margin-left

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown