2011-06-18 11 views
0

問題が発生しました。同じ機能を使用してScrollTopでウィンドウ内に移動したいのですが、 "0"または " - = 10"は機能しません。理由を理解していますか?アラートを入れると、クラス "monter"が認識されますが、 "0"または " - = 10"になることはありません。ここに私のコードは次のとおりです。あなたの助けを関数ScrollTopは一方向でのみ機能します

  function scroll_descendre(){ 
       var scrolling; 
       $('.descendre, .monter').bind({ 
        mousedown: function(){ 
         var zone = $(this).prev(); 
         scrolling = true; //this is here : 
         if ($(this).attr('class')=='descendre') startScrolling(zone, '+=20'); 
         else if($(this).attr('class')=='monter') startScrolling(zone, '0'); 
        }, 
        mouseup: function(){ 
         scrolling = false; 
        }, 
        click: function(e){ 
         e.preventDefault(); 
        } 
       }); 

       function startScrolling(obj, param){ 
       if (!scrolling) { 
        obj.stop(); 
       } else { 
        obj.animate({"scrollTop": param}, "fast", function(){ 
        if (scrolling) { startScrolling(obj, param); } 
        }); 
       } 
      } 
      } 

おかげで

+0

? 'zone = $(this).prev();'はあなたが望む要素を選択していないかもしれません。 – DarthJDG

+0

@DarthJDG:ありがとう、間違いだった;)ありがとう – Paul

+0

問題を解決したので答えとして追加した。 ;) – DarthJDG

答えて

1

は、次の行を見てください:

var zone = $(this).prev(); 

それは、アニメーション化する権利の要素を選択していない可能性があります。あなたのHTMLマークアップなしで言うのは難しいですが、別のセレクタに変更する必要があります。

あなた.monter要素がスクロールコンテナの前になるかもしれませんが、それを変更してみてください:あなたは、あなたのHTMLマークアップを投稿することができます

​​
関連する問題