幅を変更して要素をスライドさせて表示するスライダーを作成しました。デスクトップには、これを行うためのボタンがあります。スライダーをタッチ アンド ドラッグ イベントで動作させ、iosslider のように滑らかにしたいと考えています。機能する方法を見つけましたが、途切れ途切れで、常に応答するとは限りません。
私のコード...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script type="text/javascript">$(document).bind("mobileinit", function(){$.extend($.mobile , {autoInitializePage: false})});</script>
<script src="scripts/jquery.mobile-1.3.2.min.js"></script>
<script>
function clickNDrag(){
var mousePosition = event.pageX;
$(this).bind('vmousemove',function(){
var mouseCurrentPosition = event.pageX;
var positionNumber = mouseCurrentPosition - mousePosition;
if(positionNumber > 0){
var widthAppend = 20;
} else {
var widthAppend = -20;
}
$(this).css({width: '+=' + widthAppend});
});
$(this).vmouseup(function(){
$(this).unbind('mousemove');
});
$(this).vmouseleave(function(){
$(this).unbind('mousemove');
});
}
$(document).ready(function(){
$('.slider').bind('vmousedown',clickNDrag);
});
</script>
私が行ったことは、jQuery Mobile をロードし、そのタッチ イベントのみをロードしたことです。
スクリプトは、仮想マウスがどこにあるかを確認し、次にマウスが移動したときに右または左に移動したかどうかを確認し、スライダーから 20px を加算または 20px を減算します。
より自然な感じでスムーズな方法でこれを行うにはどうすればよいでしょうか?