HTML5使用DeviceOrientation實(shí)現(xiàn)搖一搖功能
HTML5有一個(gè)重要特性:DeviceOrientation,它將底層的方向和運(yùn)動(dòng)傳感器進(jìn)行了高級(jí)封裝,它使我們能夠很容易的實(shí)現(xiàn)重力感應(yīng)、指南針等有趣的功能。本文將結(jié)合實(shí)例給大家介紹使用HTML5的重力運(yùn)動(dòng)和方向傳感器實(shí)現(xiàn)手機(jī)搖一搖效果。
DeviceOrientation包括兩個(gè)事件:
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ù)。
HTML
頁面上有一個(gè)div#hand,用來放置一個(gè)手搖的圖片,div#result用來展示搖動(dòng)后的結(jié)果信息。
<div id="hand" class="hand hand-animate"></div> <div id="result"></div>
我們可以使用CSS3來增強(qiáng)頁面效果,使用-webkit-animation動(dòng)畫效果實(shí)現(xiàn)手搖圖片的動(dòng)態(tài)效果,具體請(qǐng)下載源代碼查看。
Javascript
“搖一搖”這個(gè)動(dòng)作即“一定時(shí)間內(nèi)設(shè)備了一定距離”,因此通過devicemotion監(jiān)聽設(shè)備晃動(dòng)獲取到的x, y, z軸的 值在一定時(shí)間范圍內(nèi)的變化率,即判斷設(shè)備是否有進(jìn)行晃動(dòng)。而為了防止正常移動(dòng)的誤判,需要給該變化率設(shè)置一個(gè)合適的臨界值。
HTML5判斷設(shè)備晃動(dòng)的代碼我們使用已經(jīng)封裝好的shake.js,項(xiàng)目地址:https://github.com/alexgibson/shake.js。
<script src="shake.js"></script>
首先實(shí)例化Shake,然后啟動(dòng)開始監(jiān)聽設(shè)備運(yùn)動(dòng)情況,監(jiān)聽設(shè)備運(yùn)動(dòng),回調(diào)監(jiān)聽結(jié)果:shakeEventDidOccur。
window.onload = function() {
var myShakeEvent = new Shake({
threshold: 15
});
myShakeEvent.start();
window.addEventListener('shake', shakeEventDidOccur, false);
function shakeEventDidOccur () {
var result = document.getElementById("result");
result.className = "result";
var arr = ['妹子一枚','福利圖片一套','碼農(nóng)筆記一本','土豪金一臺(tái)'];
var num = Math.floor(Math.random()*4);
result.innerHTML = "恭喜,搖得"+arr[num]+"!";
setTimeout(function(){
result.className = "result result-show";
}, 1000);
}
};
這里,函數(shù)shakeEventDidOccur()可以自定義,本例是將搖晃后的結(jié)果返回在頁面上展示出來,請(qǐng)看DEMO演示。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
- Android利用傳感器實(shí)現(xiàn)微信搖一搖功能
- Android 微信搖一搖功能實(shí)現(xiàn)詳細(xì)介紹
- IOS 實(shí)現(xiàn)搖一搖的操作
- iOS實(shí)現(xiàn)微信朋友圈與搖一搖功能
- javascript html5搖一搖功能的實(shí)現(xiàn)
- 分享網(wǎng)頁檢測(cè)搖一搖實(shí)例代碼
- 使用PHP實(shí)現(xiàn)微信搖一搖周邊紅包
- php官方微信接口大全(微信支付、微信紅包、微信搖一搖、微信小店)
- 安卓系統(tǒng)中實(shí)現(xiàn)搖一搖畫面振動(dòng)效果的方法
- Android實(shí)現(xiàn)搖一搖功能
相關(guān)文章
JQuery each()函數(shù)如何優(yōu)化循環(huán)DOM結(jié)構(gòu)的性能
each()方法能使DOM循環(huán)結(jié)構(gòu)簡潔,不容易出錯(cuò)。each()函數(shù)封裝了十分強(qiáng)大的遍歷功能,使用也很方便,它可以遍歷一維數(shù)組、多維數(shù)組、DOM, JSON 等等在javaScript開發(fā)過程中使用$each可以大大的減輕我們的工作量2012-12-12
jQuery如何跳轉(zhuǎn)到另一個(gè)網(wǎng)頁 就這么簡單
這篇文章主要介紹了如何在jQuery中跳轉(zhuǎn)到另外一個(gè)網(wǎng)頁HTML,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
jQuery實(shí)現(xiàn)單擊和鼠標(biāo)感應(yīng)事件
這篇文章主要介紹了jQuery實(shí)現(xiàn)單擊和鼠標(biāo)感應(yīng)事件的方法的相關(guān)資料,需要的朋友可以參考下2015-02-02
jQuery實(shí)現(xiàn)的產(chǎn)品自動(dòng)360度旋轉(zhuǎn)展示特效源碼分享
這篇文章主要展示了jQuery實(shí)現(xiàn)的產(chǎn)品自動(dòng)360度旋轉(zhuǎn)展示特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-08-08
jQuery實(shí)現(xiàn)底部浮動(dòng)窗口效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)底部浮動(dòng)窗口效果,涉及jQuery事件響應(yīng)及頁面元素動(dòng)態(tài)變換的相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
詳解jQuery中關(guān)于Ajax的幾個(gè)常用的函數(shù)
AJAX 是一種在無需重新加載整個(gè)網(wǎng)頁的情況下,能夠更新部分網(wǎng)頁的技術(shù)。下面通過本文給大家分享jQuery中關(guān)于Ajax的幾個(gè)常用的函數(shù),需要的的朋友參考下2017-07-07
jQery使網(wǎng)頁在顯示器上居中顯示適用于任何分辨率
這篇文章主要介紹了jQery使網(wǎng)頁在任何分辨率的顯示器上居中顯示的方法,需要的朋友可以參考下2014-06-06
Easyui使用Dialog行內(nèi)按鈕布局的實(shí)例
下面小編就為大家?guī)硪黄狤asyui使用Dialog行內(nèi)按鈕布局的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
jquery綁定事件 bind和on的用法與區(qū)別分析
這篇文章主要介紹了jquery綁定事件 bind和on的用法與區(qū)別,結(jié)合實(shí)例形式分析了jquery綁定事件 bind和on的基本功能、用法、區(qū)別與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05

