国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

HTML5使用DeviceOrientation實現搖一搖功能

2024-05-06 16:21:25
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了HTML5使用DeviceOrientation實現搖一搖功能的相關資料,需要的朋友可以參考下

HTML5有一個重要特性:DeviceOrientation,它將底層的方向和運動傳感器進行了高級封裝,它使我們能夠很容易的實現重力感應、指南針等有趣的功能。本文將結合實例給大家介紹使用HTML5的重力運動和方向傳感器實現手機搖一搖效果。

DeviceOrientation包括兩個事件:

1、deviceOrientation:封裝了方向傳感器數據的事件,可以獲取手機靜止狀態下的方向數據,例如手機所處角度、方位、朝向等。

2、deviceMotion:封裝了運動傳感器數據的事件,可以獲取手機運動狀態下的運動加速度等數據。

HTML

頁面上有一個div#hand,用來放置一個手搖的圖片,div#result用來展示搖動后的結果信息。

 

  
  1. <div id="hand" class="hand hand-animate"></div>  
  2. <div id="result"></div>  

我們可以使用CSS3來增強頁面效果,使用-webkit-animation動畫效果實現手搖圖片的動態效果,具體請下載源代碼查看。

Javascript

“搖一搖”這個動作即“一定時間內設備了一定距離”,因此通過devicemotion監聽設備晃動獲取到的x, y, z軸的 值在一定時間范圍內的變化率,即判斷設備是否有進行晃動。而為了防止正常移動的誤判,需要給該變化率設置一個合適的臨界值。

HTML5判斷設備晃動的代碼我們使用已經封裝好的shake.js,項目地址:https://github.com/alexgibson/shake.js。

 

 
  1. <script src="shake.js"></script>  

首先實例化Shake,然后啟動開始監聽設備運動情況,監聽設備運動,回調監聽結果:shakeEventDidOccur。

 

 
  1. window.onload = function() {  
  2. var myShakeEvent = new Shake({  
  3. threshold: 15  
  4. });  
  5.  
  6. myShakeEvent.start();  
  7.  
  8. window.addEventListener('shake', shakeEventDidOccur, false);  
  9.  
  10. function shakeEventDidOccur () {  
  11. var result = document.getElementById("result");  
  12. result.className = "result";  
  13. var arr = ['妹子一枚','福利圖片一套','碼農筆記一本','土豪金一臺'];  
  14. var num = Math.floor(Math.random()*4);  
  15. result.innerHTML = "恭喜,搖得"+arr[num]+"!";  
  16. setTimeout(function(){  
  17. result.className = "result result-show";  
  18. }, 1000);  
  19. }  
  20. };  

這里,函數shakeEventDidOccur()可以自定義,本例是將搖晃后的結果返回在頁面上展示出來,請看DEMO演示。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 白山市| 屏南县| 县级市| 建瓯市| 镇巴县| 和田县| 霍邱县| 蓝山县| 彝良县| 贵溪市| 东丽区| 九江市| 论坛| 古蔺县| 宣恩县| 巴彦县| 义乌市| 广南县| 微山县| 碌曲县| 获嘉县| 灵宝市| 昌乐县| 西乡县| 黄骅市| 莲花县| 静乐县| 建水县| 乌拉特中旗| 临夏市| 桐柏县| 邹城市| 玛沁县| 个旧市| 太白县| 桃园市| 涡阳县| 临朐县| 工布江达县| 隆德县| 姚安县|