基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)


Posted in HTML / CSS onJuly 24, 2017

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

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

不多说直接上代码:

JavaScript:

var jsonObject=null;
        // 当页面加载完以后会执行window.onload
        window.onload = function() {
            var times = -1; // 记录摇动次数
            var last_time = 0;
            var borderSpeed = 800;  // 加速度变化临界值
            var x = y = z = last_x = last_y = last_z = 0;
            if (window.DeviceMotionEvent) {
                window.addEventListener('devicemotion',shake,false);
            }
            else
            {
                alert('您的设备不支持摇一摇哦');
            }
            // 每次手机移动的时候都会执行下面shake函数的代码
            function shake(eventData)
            {
                var acceleration = eventData.accelerationIncludingGravity;
                var curTime = new Date().getTime();
                var diffTime  = curTime-last_time;
                // 每隔100ms进行判断
                if (diffTime>100) {
                    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>borderSpeed) {
                        times++;
                        document.getElementById("text").innerHTML=times+" times";
                        // 用户的微信昵称和头像连接发送一次即可,不需要每次都发送
                        if (times==0)
                        {
                            document.forms["insertForm"].headimg.value =img ;
                            document.forms["insertForm"].user.value = nickname;
                        }
                        document.forms["insertForm"].time.value = times;
                    }
                    last_time = curTime;
                    last_x = x;
                    last_y = y;
                    last_z = z;
                }
            }
        }

html:

<img src="hand.png">
<br/><font size="16" color="red" id="text"></font>

总结

以上所述是小编给大家介绍的基于HTML5实现类似微信手机摇一摇功能(计算摇动次数),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

HTML / CSS 相关文章推荐
a标签的css样式四个状态
Mar 09 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
Jan 31 HTML / CSS
CSS3的resize属性使用初探
Sep 27 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 HTML / CSS
css3翻牌翻数字的示例代码
Feb 07 HTML / CSS
详解HTML5表单新增属性
Dec 21 HTML / CSS
html5拖曳操作 HTML5实现网页元素的拖放操作
Jan 02 HTML / CSS
html5设计原理(推荐收藏)
May 17 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
Jul 02 HTML / CSS
【HTML5】3D模型--百行代码实现旋转立体魔方实例
Dec 16 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
Jan 08 HTML / CSS
HTML5中使用json对象的实例代码
Sep 10 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 #HTML / CSS
h5实现获取用户地理定位的实例代码
Jul 17 #HTML / CSS
HTML5 表单验证失败的提示语问题
Jul 13 #HTML / CSS
HTML5地理定位_动力节点Java学院整理
Jul 12 #HTML / CSS
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
Jul 11 #HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 #HTML / CSS
html5页面结构_动力节点Java学院整理
Jul 10 #HTML / CSS
You might like
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
2008/09/10 PHP
php简单实现MVC
2015/02/05 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
php xhprof使用实例详解
2019/04/15 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
javascript实现评分功能
2020/06/24 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python计算列表内各元素的个数实例
2018/06/29 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
python类中super() 的使用解析
2019/12/19 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
iPython pylab模式启动方式
2020/04/24 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
渠道运营商合作协议书范本
2014/10/06 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
2016年教代会开幕词
2016/03/04 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android