HTML5先行者高级交流群
欢迎加入学习讨论
专注前端,专注网页设计制作及网站开发项目 - (低价承接网站开发项目) QQ:370158739
加入收藏
RSS
首页
JS下载
CSS3手册
Json在线解析
html5教程
网站及特效实例
视频教程
html5资讯
网络编程
html5书籍
HTML5演示
论坛
入门教程
高级应用
滚动新闻
html5实验
javascript特效
Photoshop教程及网页素材
jquery特效
html5视频教程
CSS3视频教程
JS视频教程
JUQERY视频教程
Bootstrap视频教程
html5video
微信服务号开发教程
最新资讯
最新动态
IT动态
ASP编程
PHP编程
正则表达式
AJAX相关
ASP.NET
JSP编程
Flex
脚本加解密
网页编辑器
相关技巧
黑客相关
网页播放器
其它综合
java教程
您的位置
:
首页
>
html5教程
>
高级应用
» 正文
html5摇一摇代码优化包括DeviceMotionEvent等等_html5教程技巧
2015-01-03 22:20:19
[
小
大
]
已经帮助:
人解决问题
对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及css3做的3D小
html5视频应用
友情链接:
联系人:QQ370158739
关于HTML5先行者
-
联系我们
-
广告服务
-
友情链接
-
网站地图
-
版权声明
-
人才招聘
-
帮助