第4章 [WebKit活用術]フリックイベントの実装 その1
この章では、iPhoneならではのイベント『フリック』を使った画面遷移に挑戦します。
まず、iPhoneには様々なイベントがあることをご紹介します。
イベント名 |
動作 |
解説 |
タップ |
指でスクリーンを軽くたたく |
マウスのクリックに相当 |
ダブルタップ |
指でスクリーンを軽く2回たたく |
マウスのダブルクリックに相当 |
フリック |
指ではじく |
左右の画面遷移 |
ピンチイン |
2つの指でタッチして広げる |
画面の拡大 |
ピンチアウト |
2つの指でタッチして縮める |
画面の縮小 |
さてプログラムでは、下記の様にイベントを検知出来る。
// 新しくスクリーンに指が触れた場合に発生するイベント
document.addEventListener('touchstart', イベントハンドラー処理, false);
// スクリーンに触れている指をスライドさせた場合に発生するイベント
document.addEventListener('touchmove', イベントハンドラー処理, false);
検知した後、イベントハンドラーにて「タップ」「フリック」「ピンチ」を判定することで各イベント処理を実行します。
function イベントハンドラー処理(e) {
// 最初にスクリーンを触れた時に発生するイベント
if (e.type == "touchstart") { // イベントの種類を判定
// 現在スクリーンにタッチされている指の本数が1本の場合
if (e.touches.length == 1) {
// この時点でピンチではない事が明確である。
}
}
// スクリーンに触れている指をスライドさせた場合に発生するイベント
else if (e.type == "touchmove") {
// 現在スクリーンにタッチされている指の本数が1本の場合
if (e.touches.length == 1) {
// この時点でピンチではない事が明確である。
}
}
しかし、これだけではフリックなのか、上下左右のスクロールなのかが分からない。
どうも座標をみてこれらを判定する必要があるようです。
つづく![]()


