Partage
  • Partager sur Facebook
  • Partager sur Twitter

Défilement par flèche

Sujet résolu
    28 décembre 2009 à 20:44:51

    Bonjour à tous,
    depuis ce matin je tente de résoudre un problème qui me tracasse. Mon problème est le suivant.
    Sur ma page web, j'ai un DIV dans lequel je souhaiterais afficher du contenu provenant d'une base de données. Pour moi le contenu affiché représente une page et j'ai 3 pages par exemple et je voudrais afficher le contenu de chaque page lorsqu'on clique sur une flèche de tel sorte que la page présent remonte pour faire place à la page suivante.
    NB: Il y a deux flèches, une pour faire monter et l'autre pour faire descendre. J'aimerais que l'on m'aide à résoudre ce problème.
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      28 décembre 2009 à 21:34:53

      Un truc comme ça, éventuellement.

      <div id="texte" style="width:200px;height:300px;border:1px solid black;position:relative;overflow-y:hidden;"><div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam neque orci, lobortis eget porta quis, lacinia eget nunc. Curabitur semper, eros et pulvinar congue, leo erat viverra magna, in ullamcorper nibh risus quis diam. Fusce sed lorem et dui viverra malesuada consectetur id mi. Curabitur augue massa, interdum sed vestibulum nec, semper eget leo. Fusce sagittis elementum nibh imperdiet adipiscing. Aenean purus neque, tincidunt sit amet suscipit ac, viverra sit amet magna. Suspendisse quam ante, porta sit amet sodales id, pretium euismod dui. Donec faucibus, urna at porta rutrum, massa ante sollicitudin neque, at elementum elit leo sit amet felis. In leo erat, convallis id faucibus at, sollicitudin ac orci. Donec a lorem nisl, ac aliquet nibh. Mauris mollis, lacus nec mollis laoreet, dolor orci dictum purus, non sollicitudin ipsum arcu vel erat. Praesent vel sollicitudin ipsum. Nullam quis elit nisl, at aliquet sapien. Maecenas nisl ligula, imperdiet sed lacinia ac, dictum quis urna. Duis id odio ac lectus rhoncus egestas eu id odio. Sed dolor mi, interdum ac ultricies ut, gravida sed nulla. Aliquam commodo, eros non varius blandit, metus libero tempor sapien, in volutpat lectus justo eget arcu. Nulla facilisi. Etiam interdum erat ac metus ornare molestie. Nam facilisis iaculis lacus ut egestas.</div></div>
      
      <br />
      <button id="btn_up" onclick="up('texte')">UP</button>
      <button id="btn_down" onclick="down('texte')">DOWN</button>
      
      <script>
      window.onload=function() {
        var scr = new Scroll("texte","btn_up","btn_down");
      };
      
      function Scroll(id,id_up,id_down) {
        var d = document.getElementById(id);
        var txt = d.getElementsByTagName("div")[0];
        txt.style.position = "relative";
        txt.style.top = "0";
        var tps = 50;
        var nb = 0;
      
        document.getElementById("btn_up").onclick = up;
        document.getElementById("btn_down").onclick = down;
      
        function up() {
          if(nb>0) {
            nb--;
            var dest = nb*d.offsetHeight;
            (function go() {
              var act = parseInt(txt.style.top,10);
              if(act<-dest) {
                txt.style.top = act+10;
                setTimeout(go,tps);
              }
            })();
          }
        }
        function down() {
          if(nb<Math.floor(txt.offsetHeight/d.offsetHeight)) {
            nb++;
            var dest = nb*d.offsetHeight;
            (function go() {
              var act = parseInt(txt.style.top,10);
              if(act>-dest) {
                txt.style.top = act-10;
                setTimeout(go,tps);
              }
            })();
          }
        }
      }
      </script>
      
      • Partager sur Facebook
      • Partager sur Twitter
        29 décembre 2009 à 9:49:34

        Effectivement il s'agit d'un truc de ce genre mais ça ne fonctionne pas
        • Partager sur Facebook
        • Partager sur Twitter
          29 décembre 2009 à 11:15:09

          Tu testes sous quel navigateur ?

          Ca fonctionne sous Firefox 3.6b5 sous Linux. Et de toutes façons, j'pourrais pas tester ailleurs.
          • Partager sur Facebook
          • Partager sur Twitter
            29 décembre 2009 à 11:56:51

            Je teste sous Firefox 3.5.6 sous Windows . Merci de ton aide
            • Partager sur Facebook
            • Partager sur Twitter
              29 décembre 2009 à 12:01:08

              Faudrait pas mettre les fonctions up et down avant leur utilisation Golmote? =°
              • Partager sur Facebook
              • Partager sur Twitter
                29 décembre 2009 à 12:07:04

                J'ai mis le script entre les balise <head></head> mais ça ne fonctionne toujours pas.
                • Partager sur Facebook
                • Partager sur Twitter
                  29 décembre 2009 à 12:48:17

                  @Tiller, normalement non, pas besoin. Elles sont lues avant toute affectation.

                  Tu veux bien essayer de le débugguer pour Windows ? :euh:
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 décembre 2009 à 12:58:09

                    La console d'erreur de Mozilla me donne le message suivant:
                    Erreur d'analyse de la valeur pour "top". Declaration abandonnée
                    J'ai tester le script sous IE il marche parfaitement
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 décembre 2009 à 13:00:31

                      Essaie en modifiant les lignes 30 et 43 comme ceci :

                      txt.style.top = (act+10)+"px";

                      (Avec act-10 pour la ligne 43)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 décembre 2009 à 13:04:40

                        Je reposte pour pas que tu aies à éditer.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          29 décembre 2009 à 14:07:25

                          Ok c'est super ça marche partout. Mais j'ai soucis avec l'adaptation au niveau de mon code je pense que le problème se trouve au niveau des DIV j'en ai plusieurs à l'intérieur d'un DIV.
                          Merci pour tout
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 décembre 2009 à 14:24:52

                            Cool. Pense à mettre ton sujet en résolu à l'aide du lien en bas de page ;)
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Défilement par flèche

                            × 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