-1

mousedown および mouseup イベントで機能するボタンを備えた jquery サムネイル スクローラーを作成しようとしています。スクロールはできますが、それをもう一度使用する機能を作成しようとすると、機能しません。これがスクローラーの私のコードです

                var $wrapper = $('.my_ul');
                var $div = $('.my_div');
                var $ul = $('.my_ul');


                    function scrollRight()
                    {


                        var divLeft = $ul.css('marginLeft');
                        divLeft = Math.abs(parseInt(divLeft)) - 60;


                        var width = $div.width();
                        var ulwid = $ul.width();

                        var ulWidth = $ul.width() - width;
                        if(divLeft >= ulWidth){stopScrolling();}
                        else{
                        // contintually increase scroll position*/
                        $wrapper.animate({'margin-left' : '-=10'}, 1, scrollRight);}

                    }

                    function scrollLeft()
                    {   
                        var divLeft = $ul.css('marginLeft');
                        divLeft = parseInt(divLeft);


                        if(divLeft >= 0){stopScrolling();}
                        else{
                        // contintually increase scroll position*/
                        $wrapper.animate({'margin-left' : '+=10'}, 1, scrollLeft);}

                    }

                    function stopScrolling()
                    {
                        // stop increasing scroll position
                        $wrapper.stop();
                    }

                    $('.scroll_right').mousedown(scrollRight).mouseup(stopScrolling);
                    $('.scroll_left').mousedown(scrollLeft).mouseup(stopScrolling);

パラメータを使用して関数を作成する必要がありますが、それを試してみるとうまくいきません。また、再帰呼び出しのため、アニメーションが遅くなります。誰かがより良い解決策を持っている場合は、私に知らせてください。

4

2 に答える 2

1

これはうまくいくはずです:

function scrollingStuff($right, $left, $wrapper, $div, $ul) {

    $right.mousedown(scrollRight).mouseup(stopScrolling);
    $left.mousedown(scrollLeft).mouseup(stopScrolling);

    ... put functions here ...

}

要素の jQuery セレクターの結果で呼び出します。

scrollingStuff($(".scroll_right"), $(".scroll_left"), ...);
于 2013-08-08T21:28:15.293 に答える