DeviceMotionEvent程式碼優化例項
本章節分享兩端程式碼例項,實現了對html5的搖一搖程式碼優化。
程式碼優化第一步:
刪除無用的程式碼,進行重新封裝,程式碼如下:
[JavaScript] 純文字檢視 複製程式碼if(window.DeviceMotionEvent){ var speed = 25;//定義一個數值 var x = y = z = lastX = lastY = lastZ = 0;//重置所有數值 window.addEventListener('devicemotion', function(){ //將感測值賦給acceleration var acceleration =event.accelerationIncludingGravity; x = acceleration.x; y = acceleration.y; z = acceleration.z; if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed ){ // TODO:在此處可以實現搖一搖之後所要進行的資料邏輯操作 donghua(); } lastX = x; lastY = y; lastZ = z; }, false); }
但是上面的程式碼並不完美,動畫不執行完畢就不能繼續執行DeviceMotionEvent事件。
程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼var f=1; function donghua(){ //動畫事件 $(".img").animate({left:'0',opacity:'1'},700,function(){f=1;}); } if(window.DeviceMotionEvent) { var speed = 25;//定義一個數值 var x = y = z = lastX = lastY = lastZ = 0;//重置所有數值 window.addEventListener('devicemotion', function(){ //將感測值賦給acceleration var acceleration =event.accelerationIncludingGravity; x = acceleration.x; y = acceleration.y; z = acceleration.z; if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed ) { // TODO:在此處可以實現搖一搖之後所要進行的資料邏輯操作 if(f==1){ donghua(); f=0; } } lastX = x; lastY = y; lastZ = z; }, false); }
相關文章
- css優化文字顯示效果程式碼例項CSS優化
- C# Winform程式介面優化例項C#ORM優化
- SQL優化例項SQL優化
- MySQL 優化例項MySql優化
- (轉)MySQL優化例項MySql優化
- css背景虛化效果程式碼例項CSS
- javascript格式化字串程式碼例項JavaScript字串
- C# 程式碼效能優化舉例C#優化
- SQL優化例項-思路分析SQL優化
- 時間日期格式化程式碼例項
- css樣式初始化程式碼例項CSS
- js格式化數字例項程式碼JS
- 樣式初始化程式碼例項分享
- js圖片碎片化效果程式碼例項JS
- jQuery is() 程式碼例項jQuery
- SQL開發例項和優化SQL優化
- HP UNIX系統優化例項優化
- javascript時間日期格式化例項程式碼JavaScript
- js時間日期格式化程式碼例項JS
- js格式化時間日期程式碼例項JS
- 如何讀懂火焰圖?+ 例項講解程式效能優化優化
- 表單序列化應用程式碼相關程式碼例項
- jQuery選項卡例項程式碼jQuery
- dom操作程式碼例項
- javascript的for in例項程式碼JavaScript
- drag拖拽程式碼例項
- requestAnimationFrame()動畫例項程式碼requestAnimationFrame動畫
- $$和||使用程式碼例項
- js刮刮樂程式碼例項JS
- canvas刮刮樂程式碼例項Canvas
- css梯形程式碼例項CSS
- toJSON()程式碼例項JSON
- [轉]BDB例項程式碼
- IOS程式碼例項區iOS
- 分享一個SQLite 效能優化例項SQLite優化
- java多型-優化上個例項Java多型優化
- 優化 WebView 的載入速度例項優化WebView
- 無線頁面動畫優化例項動畫優化