iOS5から、event.pageXが取れるようになったみたい

ちょっとハマったのでメモ。

    var test1 = document.querySelector('#test1'),
	test2 = document.querySelector('#test2');
    
    test1.addEventListener('touchstart', function (e) {
	
	alert(e.pageX);
    }, false);
    
    test2.addEventListener('touchstart', function (e) {
	
	alert(e.touches[0].pageX);
    }, false);

iOS5以前では、event.pageXは常に0だったが、iOS5からは(おそらく)event.touches[0].pageXと同じ値が格納される模様。PC版と同じ作りにする場合には重宝するが、iOS4以前やAndroidでは想定外の挙動になるので結局touches[0]を経由して取らないと意味ない。

加えて、iOS5ではこの問題に気づきづらいのが注意点。iOS4で見たら動きが違うーって言われたのでメモ。

ちなみにテストコードを書いてみた↓
http://jsdo.it/edo_m18/MRVg

  1. haguyatm09tdからリブログしました
  2. atm09tdedoからリブログしました
  3. edoの投稿です