0

iScroll 4に関する別の質問。JSFiddle でデモをセットアップしました。

divをスクロールしたいmousedown。最後までスクロールする必要があります。

  • 継続的に;
  • 中断することなく;
  • 静的速度で;

ラストまでdiv、もしくはmouseup途中まで。

これを達成することは可能ですか?

4

3 に答える 3

0

このソリューションを確認できますか: http://jsfiddle.net/ugeU3/3

html:

<div id="click">Element to click on</div>

js:

jQuery("#click").bind('mousedown', function(){
    intInterval=setInterval(function(){
            myScroll.scrollTo(25, 0, 800, true);
    },30);
});
jQuery("#click").bind('mouseup', function(){
    intInterval=window.clearInterval(intInterval);
});

時間の値を変更して、速度設定を実現できます。役立つことを願っています。

于 2012-01-11T14:00:08.750 に答える
0

私は@techfoobarコードを変更し、このようなことを行いました。これは、マウスダウンで終了するまで継続的にスクロールし、シングルクリックで 1 つの div を内外に移動します。コード スニペットは次のとおりです。

        var scrolling=false;
        var scrollTimer=-1;
        $('#next').bind('mousedown',function () {
            scrolling = true;
            scrollTimer = setInterval(function () {
                scrollDivRight();
            }, 100);
            return false;
        });
        $('#next').bind('mouseup',function () {
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        $('#next').bind('mouseout',function () { /*For smoother effect and also prevent if any previous delay (eg. 100ms)*/
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        scrollDivRight:function(){
            if(!scrolling) return false;
            myScroll.scrollTo(177, 0, 400, true);       
        }

これよりも良いものがあれば提案してください。もちろん、 @techfoobarの回答で言及されている問題はまだ解決されていません。

于 2012-01-12T10:10:01.437 に答える
0

このフィドルを確認してください:http://jsfiddle.net/z2YWZ/2/

まだ1つの問題があります。最後までたどり着いても止まらない。iScroll は CSStranslateを使用してスクロールを行いますが、現在の翻訳フォームを取得する方法が見つかりませんでした。現在、その解決策を探しています。

アップデート

iScroll には useTransform オプションがあり、これを使用すると、translate を使用せずに CSS の left プロパティをスクロールに使用することができます。このようにして、終わりに達したかどうか (いずれかの方法) を簡単に識別できます。使用するには、useTransform: falseiScroll の初期化中に設定するだけです。

更新 2

このフィドルを確認してください:http://jsfiddle.net/z2YWZ/12/

于 2012-01-11T14:21:25.627 に答える