JS事件对象--移动端事件--摇一摇

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("摇晃了");})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值