基于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制作的20种loading动效
Jul 05 HTML / CSS
纯CSS3制作漂亮带动画效果的主机价格表
Apr 25 HTML / CSS
利用CSS3的transition属性实现滑动效果
Aug 05 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
针对HTML5的Web Worker使用攻略
Jul 12 HTML / CSS
CSS3 画基本图形,圆形、椭圆形、三角形等
Sep 20 HTML / CSS
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
Jul 12 HTML / CSS
Canvas获取视频第一帧缩略图的实现
Nov 11 HTML / CSS
CSS3实现的文字弹出特效
Apr 16 HTML / CSS
CSS几步实现赛博朋克2077风格视觉效果
Jun 16 HTML / CSS
HTML基础详解(下)
Oct 16 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实现的多彩标签效果代码分享
2014/08/21 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
PHP反射学习入门示例
2019/06/14 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
Python常用内置函数总结
2015/02/08 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
python爬虫 正则表达式解析
2019/09/28 Python
django中瀑布流写法实例代码
2019/10/14 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
PyQt5实现简单的计算器
2020/05/30 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
银行实习的自我鉴定
2013/12/10 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
银行求职自荐信
2014/06/30 职场文书
骨干教师申报材料
2014/12/17 职场文书
助学金感谢信
2015/01/20 职场文书
员工手册编写范本
2015/05/14 职场文书