一聚教程网:一个值得你收藏的教程网站

热门教程

HTML5实现摇一摇的效果

时间:2022-06-25 18:20:45 编辑:袖梨 来源:一聚教程网

DeviceOrientation包括两个事件:

1、deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。
2、deviceMotion:封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。
HTML
页面上有一个div#hand,用来放置一个手摇的图片,div#result用来展示摇动后的结果信息。
 


我们可以使用CSS3来增强页面效果,使用-webkit-animation动画效果实现手摇图片的动态效果,具体请下载源代码查看。
Javascript
“摇一摇”这个动作即“一定时间内设备了一定距离”,因此通过devicemotion监听设备晃动获取到的x, y, z轴的 值在一定时间范围内的变化率,即判断设备是否有进行晃动。而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。
HTML5判断设备晃动的代码我们使用已经封装好的shake.js,项目地址:
https://github.com/alexgibson/shake.js。
 

首先实例化Shake,然后启动开始监听设备运动情况,监听设备运动,回调监听结果:shakeEventDidOccur。
 
window.onload = function() {
    var myShakeEvent = new Shake({
        threshold: 15
    });
 
    myShakeEvent.start();
 
    window.addEventListener('shake', shakeEventDidOccur, false);
 
    function shakeEventDidOccur () {
        var result = document.getElementById("result");
        result.className = "result";
        var arr = ['妹子一枚','福利图片一套','码农笔记一本','土豪金一台'];
        var num = Math.floor(Math.random()*4);
        result.innerHTML = "恭喜,摇得"+arr[num]+"!";
        setTimeout(function(){
            result.className = "result result-show";
        }, 1000);
    }
};

这里,函数shakeEventDidOccur()可以自定义,本例是将摇晃后的结果返回在页面上展示出来

热门栏目