移动端事件:
①onclick: 移动端也可以使用onclick事件,但是查阅资料上说会有300ms的延迟,究竟是不是有待考究。
②ontouchstart: 相当于PC端的onmousedown,详细可参照先前写的文档--“事件”。下同
③ontouchend: 相当于PC端的onmouseup.
④ontouchmove: 等价于PC的 onmousemove。注意:在调用该事件的时候,默认网页会跟着滑动,为了解决这一问题,我们在事件的内部加上一条语句:return false 来组织默认事件。
⑤ontouchcancel :取消触摸的时候触发。比如来电话、信息等,系统中止触摸事件的时候会触发,每个手机触发方式不一样。
移动端事件对象:
每个触屏事件都包含事件对象。事件对象常用的有三个属性
touches 屏幕上所有的手指列表
targetTouches 元素内的所有手指列表
changedTouches 改变了状态的手指列表
两个移动端设备事件:加速计(测当前重力加速度)、 陀螺仪(测当前所处方位,用来定位)。
备注:说不清楚,直接上代码。
// 首先判断手机是否支持加速计和陀螺仪
if (window.DeviceMotionEvent){
redDiv.innerHTML = "支持";
// 动态的重力加速度
window.ondevicemotion = function(ev){
//accelerationIncludingGravity 包括了X、Y、Z的三个方向的重力加速度。
var evObj = window.event || ev;
var x = parseInt(evObj.accelerationIncludingGravity.x);
var y = parseInt(evObj.accelerationIncludingGravity.y);
var z = parseInt(evObj.accelerationIncludingGravity.z);
blueDiv.innerHTML = "x:" + x + "" + "y:" + y + "" + "z:" + z;
}
// 静态的手机朝向
window.ondeviceorientation = function(ev){
var evObj = window.event || ev;
var alpha = parseInt(evObj.alpha);
var beta = parseInt(evObj.beta);
var gamma = parseInt(evObj.gamma);
blueDiv.innerHTML = "alpha:" + alpha + "" + "beta:" + beta + "" + "gamma:" + gamma;
}
} else {
redDiv.innerHTML = "换个手机吧";
}