var funcGestureStart = function (e) {};
var funcGestureChange = function (e) {};
var funcGestureEnd = function (e) {};
// iOS向けイベント設定
document.body.addEventListener('gesturestart', funcGestureStart, false);
document.body.addEventListener('gesturechange', funcGestureChange, false);
document.body.addEventListener('gestureend', funcGestureChange, false);
// Android向けイベント設定
var pinchDistance = 0;
document.body.addEventListener('touchstart',function(e){
if(e.touches.length > 1){
pinchDistance = Math.sqrt(Math.pow((e.touches[1].pageX - e.touches[0].pageX),2)+Math.pow((e.touches[1].pageY - e.touches[0].pageY),2));
funcGestureStart(e);
} else {
pinchDistance = 0;
}
},false);
document.body.addEventListener('touchmove', function (e) {
if (pinchDistance <= 0) {
return;
}
var newDistance = Math.sqrt(Math.pow((e.touches[1].pageX - e.touches[0].pageX),2)+Math.pow((e.touches[1].pageY - e.touches[0].pageY),2));
var event = {scale: newDistance / pinchDistance};
funcGestureChange(event);
});
document.body.addEventListener('touchmove', function (e) {
if (pinchDistance <= 0) {
return;
}
funcGestureEnd(e);
});
2014年6月28日土曜日
Androidでpinch in/outのjsイベント(gesturestart, gesturechange, gestureend)
gesturestart, gesturechange, gestureendはAndroidに無いので、独自実装。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿