问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

js html5 仿微信摇一摇 怎么控制触发时间

发布网友 发布时间:2022-05-02 17:34

我来回答

3个回答

懂视网 时间:2022-05-12 05:09

原理:使用DeviceMotion实现,关于DeviceMotion介绍可以查看
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/devicemotion

通过DeviceMotionEvent,可以获得accelerationIncludingGravity的x,y,z属性,根据x,y,z属性的变化来判断设备是否有摇一摇的事件发生。

accelerationIncludeingGravity说明:
The acceleration of the device. This value includes the effect of gravity, and may be the only value available on devices that don’t have a gyroscope to allow them to properly remove gravity from the data.

代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
 <head>
 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 
 <title> html5使用DeviceMotionEvent实现摇一摇 </title>
 <style type="text/css">
 .center{position:absolute; width:640px; height:480px; left:50%; top:50%; margin-left:-320px; margin-top:-240px; line-height:480px; text-align:center; font-size:100px; }
 .normal{background:#000000;}
 .normal .txt{color:#FFFFFF;}
 .doing{background:#FF0000;}
 .doing .txt{color:#FFFF00;}
 </style>
 </head>
 <body id="mybody" class="normal">
 <p id="txt" class="txt center">请执行摇一摇</p>
 </body>
 <script type="text/javascript">
 var doing = 0; // 判断是否在动画显示中
 var speed = 23; // 定义摇动的速度数值
 var lastx = 0; var lasty = 0; var lastz = 0; function handleMotionEvent(event) {
 var x = event.accelerationIncludingGravity.x; var y = event.accelerationIncludingGravity.y; var z = event.accelerationIncludingGravity.z; if(doing==0){  if(Math.abs(x-lastx)>speed || Math.abs(y-lasty)>speed){
  doing = 1;
  show();
  }
 }
 lastx = x;
 lasty = y;
 lastz = z;
 } function show(){
 document.getElementById('mybody').className = 'doing';
 document.getElementById('txt').innerHTML = '执行了摇一摇';
 setTimeout(function(){
  doing=0; 
  document.getElementById('mybody').className='normal';
  document.getElementById('txt').innerHTML = '请执行摇一摇';
 },3000);
 }
 window.addEventListener("devicemotion", handleMotionEvent, true); </script></html>

本文介绍了通过html5实现摇一摇的功能,更多相关内容请关注Gxl网。

相关推荐:

如何通过MySql查看与修改auto_increment的方法

如何通过php生成网页桌面的快捷方式

利用js遍历获取表格内数据的方法

热心网友 时间:2022-05-12 02:17

HTML5 有很多强大的功能,比如获取设备的 x y z 坐标。这些值都可以通过代码获取并呈现出来。
也可以计算加速度及设备移动的方向,不知未来还会有多强大!
也不知什么机会看到了摇一摇,网页版本的。从网上看了一下,编写了一个代码,测试成功,贴出来。
可以后期加上很多功能,比如做个音乐播放器,或者内嵌到自己个性博客中等等。
下面是HTML源代码,
//Javascript
var SHAKE_THRESHOLD = 3000;
var last_update = 0;
var x = y = z = last_x = last_y = last_z = 0;
function init() {
if (window.DeviceMotionEvent) {
window.addEventListener('devicemotion', deviceMotionHandler, false);
} else {
alert('not support mobile event');
}
}
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;

if (speed > SHAKE_THRESHOLD) {
alert("摇动了,播放");
var media=document.getElementByIdx_x("musicBox");//获取音频控件
media.setAttribute("src","http://1.html5weby1y.sinaapp.com/2.mp3");
media.load();//加载音频
media.play();//播放音频
}
last_x = x;
last_y = y;
last_z = z;
}
}
html body onload="init()"
\
用力摇一摇你手机\

\

热心网友 时间:2022-05-12 03:35

settimeout
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 廊坊那有卖油炸糕的? 油炸糕炸开怎么办 山西炸糕炸完怎么放好吃 剪辑电影的小软件有哪些? 油炸糕怎么做啊 什么软件可以将照片处理成tif格式? 怎样才能把电脑主板上的电池拆下 如果从深圳做火车到湛江,应该怎样走? 广州到↗湛江火车票多少钱呀? 我在广州南站取票到湛江西的票,但也取了湛江西到广州南票,到时再湛江西还可以检票吗 广州火车站到广东湛江时间表 湛江市霞山区到广州白云区钟落潭镇障岗村广东青年职业学院的火车票怎么卖? 本人有学生证…可是在录入火车优惠磁条的时候写的是湛江西到广州…那我可以买湛江到广州的学生票吗… 谁能告诉我一下.09年1月18号广州到湛江的火车班次时间表 湛江到厦门怎么坐火车?票价多少?坐车时间多少? 请问湛江西站。高铁到广州南站最后一般几点? 蒙台梭利教育学中的观察法以儿童的什么为基础 湛江到广州的高铁票价多少???谁知道? 从湛江到广州坐火车怎样坐?我没坐过火车,从买票教起吧,谢啦 观察力为何成为蒙特梭利博士教育方法的基础? 类似微信这种聊天功能怎么实现好 get shit done,but first love是什么意思啊?球解答,谢谢 紧急求助模仿手机微信的界面,答辩过不了...... get sb done/get sth done/get done的意思和用法 How I Stay Productive and Get Massive Amounts of Shit Done 中文意思? 十年后的未来(微信) 表达心中很不满很气愤的骂人的英语形容词有哪些?除了*ing,damn, shit, bitc 怎么让网址发到微信上时展示方式和公众哈文章一样? 微信大家有玩过吧,就是实现微信聊天那种,listview里的时间会根据上一... 如何查询自己实名认证了多少个? 本兮的一首歌 diss淋儿again 这首歌的歌词是什么 you say you love me i say you crazy,哪首歌的歌词 2pac ft snoop的2 of americaz most wanted歌词!!! 查询身份证绑定多少个 求地道翻译 1.I get shit done. 2.My defense is INPREGNABLE. i got done in shit用英文怎么说 急求ride with me中文歌词.nelly的 如何查询我名下所有 Ignorant Shit 歌词