html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
程序员文章站
2023-12-05 16:38:16
摇一摇换颜色的,非常好用,不过测试后,需要有很多的地方需要注意,下面是个人的一些见解,大家不妨参考下... 14-05-07...
我从网上找到了一个案例,是用来摇一摇换颜色的,非常好用,不过测试后,需要注意的有:
1、必须要ios或者是安卓4.0以上的才能实现功能应用。
2、如果加如z坐标的判断,就会出现屏幕乱变颜色的情况,估计太敏感了…………或者是没找到对的用法,希望大家能给指正
3、这个功能稍微改改,就可以变成抽奖的方法,比大转盘、刮刮卡要时尚些,哈哈
<script type="text/javascript">
var color = new array('red', 'blue', 'yellow', 'green', '#00f', '#0ff');
if(window.devicemotionevent) {
var speed = 25;
var x = y = z = lastx = lasty = lastz = 0;
window.addeventlistener('devicemotion', function(){
var acceleration =event.accelerationincludinggravity;
x = acceleration.x;
y = acceleration.y;
//z = acceleration.z;
if(math.abs(x-lastx) > speed || math.abs(y-lasty) > speed ) {
document.body.style.backgroundcolor = color[math.round(math.random()*10)%6];
}
lastx = x;
lasty = y;
//lastz = z;
}, false);
}
</script>
1、必须要ios或者是安卓4.0以上的才能实现功能应用。
2、如果加如z坐标的判断,就会出现屏幕乱变颜色的情况,估计太敏感了…………或者是没找到对的用法,希望大家能给指正
3、这个功能稍微改改,就可以变成抽奖的方法,比大转盘、刮刮卡要时尚些,哈哈
复制代码
代码如下:<script type="text/javascript">
var color = new array('red', 'blue', 'yellow', 'green', '#00f', '#0ff');
if(window.devicemotionevent) {
var speed = 25;
var x = y = z = lastx = lasty = lastz = 0;
window.addeventlistener('devicemotion', function(){
var acceleration =event.accelerationincludinggravity;
x = acceleration.x;
y = acceleration.y;
//z = acceleration.z;
if(math.abs(x-lastx) > speed || math.abs(y-lasty) > speed ) {
document.body.style.backgroundcolor = color[math.round(math.random()*10)%6];
}
lastx = x;
lasty = y;
//lastz = z;
}, false);
}
</script>