iScroll 4に関する別の質問。JSFiddle でデモをセットアップしました。
div
をスクロールしたいmousedown
。最後までスクロールする必要があります。
- 継続的に;
- 中断することなく;
- 静的速度で;
ラストまでdiv
、もしくはmouseup
途中まで。
これを達成することは可能ですか?
iScroll 4に関する別の質問。JSFiddle でデモをセットアップしました。
div
をスクロールしたいmousedown
。最後までスクロールする必要があります。
ラストまでdiv
、もしくはmouseup
途中まで。
これを達成することは可能ですか?
このソリューションを確認できますか: 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);
});
時間の値を変更して、速度設定を実現できます。役立つことを願っています。
私は@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の回答で言及されている問題はまだ解決されていません。
このフィドルを確認してください:http://jsfiddle.net/z2YWZ/2/
まだ1つの問題があります。最後までたどり着いても止まらない。iScroll は CSStranslate
を使用してスクロールを行いますが、現在の翻訳フォームを取得する方法が見つかりませんでした。現在、その解決策を探しています。
アップデート
iScroll には useTransform オプションがあり、これを使用すると、translate を使用せずに CSS の left プロパティをスクロールに使用することができます。このようにして、終わりに達したかどうか (いずれかの方法) を簡単に識別できます。使用するには、useTransform: false
iScroll の初期化中に設定するだけです。
更新 2
このフィドルを確認してください:http://jsfiddle.net/z2YWZ/12/