移动端h5摇一摇事件

//        摇一摇动作

//获取加速度信息
//通过监听上一步获取到的x, y, z 值在一定时间范围内的变化率,进行设备是否有进行晃动的判断。
//而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。
        var SHAKE_THRESHOLD = 4000;
        var last_update = 0;
        var x, y, z, last_x = 0, last_y = 0, last_z = 0;

        function deviceMotionHandler(eventData) {
            var acceleration =eventData.accelerationIncludingGravity;
            var curTime = new Date().getTime();
            if ((curTime-last_update)> 10) {
                var diffTime = curTime -last_update;
                last_update = curTime;
                x = acceleration.x;
                y = acceleration.y;
                z = acceleration.z;
                var speed = Math.abs(x +y + z - last_x - last_y - last_z) / diffTime * 10000;
                if (speed > SHAKE_THRESHOLD) {
                    $('.slide_06_text').fadeOut();
                    $('.milk_01').animate({top:'0'},1000);
                    $('.milk_02').show().animate({bottom:'0'},2000);
                    $('.yao_tips_01').animate({top:'5%'},1500);
                    $('.yao_tips_02').show().animate({bottom:'5%'},2000);
                    setTimeout(function(){
                        $('.slide_06').fadeOut();
                        $('.slide_04').fadeIn();
                    },2500);
                }
                last_x = x;
                last_y = y;
                last_z = z;
            }
        }

 

posted @ 2016-11-14 10:26  djdliu  阅读(617)  评论(0编辑  收藏  举报