1.移动端事件–摇一摇:
微信摇一摇功能JS封装函数为:
//添加事件
function shake(callBack)
{
var last_x=last_y=last_z=0;
var last_time=new Date().getTime();
function initional()
{
if(window.DeviceMotionEvent)
{window.addEventListener("deviceMotion",motionEvent,false);}
else{alert("您的手机不支持摇一摇");}
}
function motionEvent(e)
{
var ev=e||window.event;
var gravity=ev.accelerationIncludingGravity;
var currentTime=new Date().getTime();
//晃动时间间隔大于100毫秒,则认为晃动了两次
if(currentTime-last_time>100)
{
//当前三者的和与上一次三者的和进行差值比较,然后除以时间差,最后乘以10000
var x=gravity.x;
var y=gravity.y;
var z=gravity.z;
var speed=Math.abs(x+y+z-(last_x+last_y+last_z))/(currentTime-last_time)*10000;
//判断是否算是摇一摇成功
if(speed>3000)
{
//判断回调函数是否存在
if(callBack)
{callback(); }
}
last_x=x;
last_y=y;
last_z=z;
last_time=currentTime;
}
}
}
原生JS的调用为
//此处简化callBack回调函数
shake(function(){console.log("摇晃了");})