• HTML5手机重力与方向感应的应用——摇一摇效果


    HTML5有一个重要特性:DeviceOrientation,它将底层的方向和运动传感器进行了高级封装,它使我们能够很容易的实现重力感应、指南针等有趣的功能。本文将结合实例给大家介绍使用HTML5的重力运动和方向传感器实现手机摇一摇效果。

    DeviceOrientation包括两个事件:

    1、deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。

    2、deviceMotion:封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。

    HTML

    页面上有一个div#hand,用来放置一个手摇的图片,div#result用来展示摇动后的结果信息。

    <div id="hand" class="hand hand-animate"></div> 
    <div id="result"></div> 

    我们可以使用CSS3来增强页面效果,使用-webkit-animation动画效果实现手摇图片的动态效果,具体请下载源代码查看。

    Javascript

    “摇一摇”这个动作即“一定时间内设备了一定距离”,因此通过devicemotion监听设备晃动获取到的x, y, z轴的 值在一定时间范围内的变化率,即判断设备是否有进行晃动。而为了防止正常移动的误判,需要给该变化率设置一个合适的临界值。

    HTML5判断设备晃动的代码我们使用已经封装好的shake.js,项目地址:https://github.com/alexgibson/shake.js

    <script src="shake.js"></script> 

    首先实例化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()可以自定义,本例是将摇晃后的结果返回在页面上展示出来,请看DEMO演示。

    声明:本文为原创文章,helloweba.com和作者拥有版权,如需转载,请注明来源于helloweba.com并保留原文链接:http://www.helloweba.com/view-blog-287.html
  • 相关阅读:
    测试AtomicInteger的可见性、有序性、原子性
    java实现hssf导出excel文件及自定义选择路径工具类
    map转换成com.google.gson.JsonObject
    String[]转List<String>
    classLoader打破双亲委托机制
    类加载器的加密解密
    自定义类加载器和父委托机制
    java中获取项目路径
    JVM内置三大类加载器详细介绍
    初识继承和多态
  • 原文地址:https://www.cnblogs.com/wanzhongjun/p/6813530.html
Copyright © 2020-2023  润新知