基于HTML5實(shí)現(xiàn)類似微信手機(jī)搖一搖功能(計(jì)算搖動(dòng)次數(shù))

1、 deviceOrientation:封裝了方向傳感器數(shù)據(jù)的事件,可以獲取手機(jī)靜止?fàn)顟B(tài)下的方向數(shù)據(jù),例如手機(jī)所處角度、方位、朝向等。
2、 deviceMotion:封裝了運(yùn)動(dòng)傳感器數(shù)據(jù)的事件,可以獲取手機(jī)運(yùn)動(dòng)狀態(tài)下的運(yùn)動(dòng)加速度等數(shù)據(jù)。
不多說直接上代碼:
JavaScript:
var jsonObject=null; // 當(dāng)頁面加載完以后會(huì)執(zhí)行window.onload window.onload = function() { var times = -1; // 記錄搖動(dòng)次數(shù) 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('您的設(shè)備不支持搖一搖哦'); } // 每次手機(jī)移動(dòng)的時(shí)候都會(huì)執(zhí)行下面shake函數(shù)的代碼 function shake(eventData) { var acceleration = eventData.accelerationIncludingGravity; var curTime = new Date().getTime(); var diffTime = curTime-last_time; // 每隔100ms進(jìn)行判斷 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; // 判斷手機(jī)確實(shí)發(fā)生了搖動(dòng)而不是正常的移動(dòng) if (speed>borderSpeed) { times++; document.getElementById("text").innerHTML=times+" times"; // 用戶的微信昵稱和頭像連接發(fā)送一次即可,不需要每次都發(fā)送 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>
總結(jié)
以上所述是小編給大家介紹的基于HTML5實(shí)現(xiàn)類似微信手機(jī)搖一搖功能(計(jì)算搖動(dòng)次數(shù)),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
- 小編最近開發(fā)一個(gè)基于html5開發(fā)的一個(gè)微信聊天前端界面,功能很全面,下面小編給大家分享實(shí)例代碼,需要的朋友參考下2018-01-29
詳解html5 canvas 微信海報(bào)分享(個(gè)人爬坑)
這篇文章主要介紹了詳解html5 canvas 微信海報(bào)分享(個(gè)人爬坑)的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-12HTML5實(shí)現(xiàn)分享到微信好友朋友圈QQ好友QQ空間微博二維碼功能
這篇文章主要介紹了HTML5實(shí)現(xiàn)分享到微信好友朋友圈QQ好友QQ空間微博二維碼功能的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-03利用HTML5+css3+jquery+weui實(shí)現(xiàn)仿微信聊天界面功能
這篇文章主要介紹了利用HTML5+css3+jquery+weui實(shí)現(xiàn)仿微信聊天界面功能的相關(guān)資料,需要的朋友可以參考下2018-01-08html5 canvas合成海報(bào)所遇問題及解決方案總結(jié)
這篇文章主要介紹了html5 canvas合成海報(bào)所遇問題及解決方案總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-03- 在ios和安卓手機(jī)里的微信下播放視頻時(shí),會(huì)遇到不少問題,例如需要手動(dòng)點(diǎn)擊,視頻才會(huì)播放,并且視頻會(huì)跳出微信框,出現(xiàn)控制條,如果視頻不是騰訊視頻,播放完畢會(huì)出現(xiàn)騰訊2017-03-09
HTML5頁面音視頻在微信和app下自動(dòng)播放的實(shí)現(xiàn)方法
現(xiàn)在大部分的H5頁面都有實(shí)現(xiàn)播放背景音樂,播放視頻功能。那怎么實(shí)現(xiàn)自動(dòng)播放呢?下面小編給大家?guī)砹薍TML5頁面音視頻在微信和app下自動(dòng)播放的實(shí)現(xiàn)方法2016-10-20- 這篇文章主要為大家詳細(xì)介紹了HTML5仿手機(jī)微信聊天界面的關(guān)鍵代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-18
- 這篇文章主要介紹了微信端html5頁面調(diào)用分享接口示例的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-14