基于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 相关文章推荐
前端制作动画的几种方式(css3,js)
Dec 12 HTML / CSS
纯CSS3实现3D旋转书本效果
Mar 21 HTML / CSS
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
May 07 HTML / CSS
CSS3 实现图形下落动画效果
Nov 13 HTML / CSS
html通过canvas转成base64的方法
Jul 18 HTML / CSS
一些常用的HTML5模式(pattern) 总结
Jul 14 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
Feb 14 HTML / CSS
html5唤起app的方法
Nov 30 HTML / CSS
html5 外链式实现加减乘除的代码
Sep 04 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
Sep 11 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 HTML / CSS
如何通过 CSS 写出火焰效果
Mar 24 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
2016/05/26 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
vue组件生命周期详解
2017/11/07 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
修复 Django migration 时遇到的问题解决
2018/06/14 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
简单了解python协程的相关知识
2019/08/31 Python
python实现批量文件重命名
2019/10/31 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
2014年民警工作总结
2014/11/25 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Golang Web 框架Iris安装部署
2022/08/14 Python