0

問題が発生しました。同じ関数を使用して、ScrollTopを使用してウィンドウ内を上に移動したいのですが、「0」または「-=1」が機能しません。理由がわかりますか?アラートを出すと、クラス「monter」は認識されますが、「0」または「-=10」にはなりません。これが私のコードです:

            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); }
                    });
                }
            }
            }

ご協力いただきありがとうございます

4

1 に答える 1

1

次の行を見てください。

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

アニメーション化する適切な要素を選択していない可能性があります。HTMLマークアップなしで見分けるのは難しいですが、別のセレクターに変更する必要があります。

.monter要素がスクロールコンテナの前にある可能性があるため、次のように変更してみてください。

var zone = $(this).next();
于 2011-06-21T08:12:05.373 に答える