• HTML5 重力感应效果,实现摇一摇效果


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
        <meta name="format-detection" content="telephone=no" />
        <title> HTML5 重力感应效果,实现摇一摇效果 </title>
        <style>
            html,body,div,ul,li{
                margin: 0;
                padding: 0;
            }
            ul,li{
                list-style: none;
            }
            body{
                width:100%;
            }
            #box{
                width:90%;
                height:80px;
                background-color:orange;
                margin:0 auto;
                color:#fff;
                background-position: center -50px;
            }
        </style>
    </head>
    <body>
        
        <div id="box"></div>
    
    <script>
            //摇晃的力度
            var SHAKE_THRESHOLD = 2000;  
            var last_update = 0;  
            //初始化重力感应位置
            var x = y = z = last_x = last_y = last_z = 0;  
    
            function deviceMotionHandler(eventData) {  
                var acceleration = eventData.accelerationIncludingGravity;  
                var curTime = new Date().getTime();  
                if ( (curTime - last_update) > 100 ) {  
                    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;   
                    last_x = x;  
                    last_y = y;  
                    last_z = z; 
    
                    //获取 X Y Z 的数值
                    document.getElementById('box').innerHTML = 'X:'+last_x+'<br> Y:'+last_y+'<br> Z:'+last_z; 
    
                    //如果速度大于摇晃的力度那么执行alert
                    if (speed > SHAKE_THRESHOLD) {  
                        alert('摇一摇');     
                    } 
                }  
            } 
            //判断是否支持重力感应
            if (window.DeviceMotionEvent) {  
                window.addEventListener('devicemotion', deviceMotionHandler, false);  
            } else {  
                alert('not support mobile event');  
            }  
    
    </script>
    </body>
    </html>
  • 相关阅读:
    让网络编程更轻松和有趣 t-io
    设计一个百万级的消息推送系统
    前端安全系列之二:如何防止CSRF攻击
    Maven仓库下载jar包失败的处理方案
    SpringBoot2中配置文件的调整,升级SpringBoot2时候注意的坑
    Table折叠小技巧html-demo
    mysql如何分类统计数量
    前台登录和Token信息交互流程
    windows下安装mysql5.6
    【读书笔记】-- 你不知道的JavaScript
  • 原文地址:https://www.cnblogs.com/zion0707/p/4732081.html
Copyright © 2020-2023  润新知