HTML5で指があるポイントから別のポイントに移動した速度(velocityX)を取得するにはどうすればよいですか?私はアンドロイドで速度(velocityX)を使用しました。
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){
private static final int SWIPE_MIN_DISTANCE = 30;
private static final int SWIPE_MAX_OFF_PATH = 200;
private static final int SWIPE_THRESHOLD_VELOCITY = 400;
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
startActivity( new Intent( this, x.class ) );
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
// Toast.makeText(getApplicationContext(), "Right Swipe", Toast.LENGTH_SHORT).show();
startActivity( new Intent( this , aasas.class) );
}
else if(e1.getY() - e2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
} else if (e2.getY() - e1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
}
} catch (Exception e) {
// nothing
}
return true;
}
html5でこのように同じように実装したいのですが、velocityXを取得できず、html5コードはこれです
this.downX = null;
this.upX = null;
document.body.addEventListener('touchstart', function(event) {
event.preventDefault();
console.log("movvv");
this.downX = event.touches[0].pageX;
}, true);
document.body.addEventListener('touchmove', function(event) {
event.preventDefault();
this.upX = event.touches[0].pageX;
}, true);
document.body.addEventListener('touchend', function(event) {
event.preventDefault();
if ((this.downX - this.upX) > 50) {
console.log("goooo");
}
if ((this.upX - this.downX) > 50) {
}
}, true);
実際、Androidのこの行をHtml5に変更したい
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY)
Android onSingleTapUp のように HTML5 でシングルタッチの機能があれば教えてください。