html5中文学习网

您的位置: 首页 > html5教程 > 高级应用 » 正文

html5摇一摇代码优化包括DeviceMotionEvent等等_html5教程技巧

[ ] 已经帮助:人解决问题
对DeviceMotionEvent进行优化,除无用的代码重新封装DeviceMotionEven,另外动画不执行完毕就不能继续执行DeviceMotionEvent事件,所以这点也要进行优化
首先对DeviceMotionEvent进行优化; 37DHTML5中文学习网 - HTML5先行者学习网
37DHTML5中文学习网 - HTML5先行者学习网
去除无用的代码,重新封装DeviceMotionEven 37DHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
37DHTML5中文学习网 - HTML5先行者学习网
if(window.DeviceMotionEvent) { 37DHTML5中文学习网 - HTML5先行者学习网
var speed = 25;//定义一个数值 37DHTML5中文学习网 - HTML5先行者学习网
var x = y = z = lastX = lastY = lastZ = 0;//重置所有数值 37DHTML5中文学习网 - HTML5先行者学习网
window.addEventListener('devicemotion', function(){ 37DHTML5中文学习网 - HTML5先行者学习网
var acceleration =event.accelerationIncludingGravity;//将传感值赋给acceleration 37DHTML5中文学习网 - HTML5先行者学习网
x = acceleration.x; 37DHTML5中文学习网 - HTML5先行者学习网
y = acceleration.y; 37DHTML5中文学习网 - HTML5先行者学习网
z = acceleration.z; 37DHTML5中文学习网 - HTML5先行者学习网
if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed ) { 37DHTML5中文学习网 - HTML5先行者学习网
// TODO:在此处可以实现摇一摇之后所要进行的数据逻辑操作 37DHTML5中文学习网 - HTML5先行者学习网
donghua(); 37DHTML5中文学习网 - HTML5先行者学习网
} 37DHTML5中文学习网 - HTML5先行者学习网
lastX = x; 37DHTML5中文学习网 - HTML5先行者学习网
lastY = y; 37DHTML5中文学习网 - HTML5先行者学习网
lastZ = z; 37DHTML5中文学习网 - HTML5先行者学习网
}, false); 37DHTML5中文学习网 - HTML5先行者学习网
} 37DHTML5中文学习网 - HTML5先行者学习网
37DHTML5中文学习网 - HTML5先行者学习网
由于实际项目中有很多需求无法很好的实现, 37DHTML5中文学习网 - HTML5先行者学习网
37DHTML5中文学习网 - HTML5先行者学习网
比如:动画不执行完毕就不能继续执行DeviceMotionEvent事件; 37DHTML5中文学习网 - HTML5先行者学习网
37DHTML5中文学习网 - HTML5先行者学习网
所以做了进一步优化; 37DHTML5中文学习网 - HTML5先行者学习网

复制代码
代码如下:
37DHTML5中文学习网 - HTML5先行者学习网
var f=1; 37DHTML5中文学习网 - HTML5先行者学习网
function donghua(){ 37DHTML5中文学习网 - HTML5先行者学习网
//动画事件 37DHTML5中文学习网 - HTML5先行者学习网
$(".img").animate({left:'0',opacity:'1'},700,function(){f=1;}); 37DHTML5中文学习网 - HTML5先行者学习网
}); 37DHTML5中文学习网 - HTML5先行者学习网
if(window.DeviceMotionEvent) { 37DHTML5中文学习网 - HTML5先行者学习网
var speed = 25;//定义一个数值 37DHTML5中文学习网 - HTML5先行者学习网
var x = y = z = lastX = lastY = lastZ = 0;//重置所有数值 37DHTML5中文学习网 - HTML5先行者学习网
window.addEventListener('devicemotion', function(){ 37DHTML5中文学习网 - HTML5先行者学习网
var acceleration =event.accelerationIncludingGravity;//将传感值赋给acceleration 37DHTML5中文学习网 - HTML5先行者学习网
x = acceleration.x; 37DHTML5中文学习网 - HTML5先行者学习网
y = acceleration.y; 37DHTML5中文学习网 - HTML5先行者学习网
z = acceleration.z; 37DHTML5中文学习网 - HTML5先行者学习网
if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed ) { 37DHTML5中文学习网 - HTML5先行者学习网
// TODO:在此处可以实现摇一摇之后所要进行的数据逻辑操作 37DHTML5中文学习网 - HTML5先行者学习网
if(f==1){ 37DHTML5中文学习网 - HTML5先行者学习网
donghua(); 37DHTML5中文学习网 - HTML5先行者学习网
f=0; 37DHTML5中文学习网 - HTML5先行者学习网
} 37DHTML5中文学习网 - HTML5先行者学习网
} 37DHTML5中文学习网 - HTML5先行者学习网
lastX = x; 37DHTML5中文学习网 - HTML5先行者学习网
lastY = y; 37DHTML5中文学习网 - HTML5先行者学习网
lastZ = z; 37DHTML5中文学习网 - HTML5先行者学习网
}, false); 37DHTML5中文学习网 - HTML5先行者学习网
} 37DHTML5中文学习网 - HTML5先行者学习网
37DHTML5中文学习网 - HTML5先行者学习网
现在就完美了
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助