- clientX : touch.clientX,\r
- clientY : touch.clientY,\r
- pageX : touch.pageX,\r
- pageY : touch.pageY,\r
- offsetX : touch.offsetX, // 要素上の座標を取得 \r
- offsetY : touch.offsetY,\r
- radiusX : touch.radiusX || 0,\r
- radiusY : touch.radiusY || 0,\r
- rotationAngle : touch.rotationAngle || 0,\r
- pressure : touch.force || touch.webkitForce || force,\r
- width : touch.width || 0,\r
- height : touch.height || 0\r
+ 'pageX' : touch.pageX,\r
+ 'pageY' : touch.pageY, \r
+ // iOS4 以下では clientX が undef, pageX から scrollLeft を引く.\r
+ // TODO getter にする?\r
+ 'clientX' : isNum( touch.clientX ) ? touch.clientX : ( touch.pageX - X_ViewPort_scrollX ),\r
+ 'clientY' : isNum( touch.clientY ) ? touch.clientY : ( touch.pageY - X_ViewPort_scrollY ),\r
+ // 要素上の座標を取得\r
+ // iOS8 でも offsetX が undef, iOS4 以下では pageX - offset.x, iOS5 以上は clientX - getBCR.left\r
+ // TODO getter にする?\r
+ 'offsetX' : isNum( touch.offsetX ) ? touch.offsetX : touch[ X_Dom_Event_coordinateSystemForElementFromPoint + 'X' ] - ( offset.x || offset.left || 0 ), \r
+ 'offsetY' : isNum( touch.offsetY ) ? touch.offsetY : touch[ X_Dom_Event_coordinateSystemForElementFromPoint + 'Y' ] - ( offset.y || offset.top || 0 ),\r
+ 'radiusX' : touch.radiusX || 0,\r
+ 'radiusY' : touch.radiusY || 0,\r
+ 'rotationAngle' : touch.rotationAngle || 0,\r
+ 'pressure' : touch.force || touch.webkitForce || force,\r
+ 'width' : touch.width || 0,\r
+ 'height' : touch.height || 0\r