首頁 web前端 H5教程 HTML5 DeviceOrientation實作手機網站搖晃功能程式碼實例_html5教學技巧

HTML5 DeviceOrientation實作手機網站搖晃功能程式碼實例_html5教學技巧

May 16, 2016 pm 03:46 PM
html5 搖一搖

介紹之前做兩個聲明:

以下程式碼可以直接運行,當然你別忘了引用jQuery才行。

複製程式碼
程式碼如下:

<script><br />// DeviceOrientation將底層的方向感測器和運動感測器進行了進階封裝,提供了DOM事件的支援。 <br />// 這個特性包括兩個事件:<br />// 1、deviceOrientation:封裝了方向感測器資料的事件,可以取得手機靜止狀態下的方向資料(手機所處的角度、方位和朝向等) 。 <br />// 2、deviceMotion:封裝了運動感測器的事件,可以取得手機運動狀態下的運動加速度等資料。 <br />// 使用這兩個事件,可以很能夠實現重力感應、指南針等有趣的功能。 <p>// 現在在許多Native應用程式中有一個非常常見而時尚的功能 —— 搖一搖,搖一搖找人、搖一搖看新聞、搖一搖找金幣。 。 。 <br />// 也許在android或ios的客戶端上對這個功能你已經很了解了,但是現在,我將告訴你如何在手機網頁上實現搖一搖的功能。 <p>// OK,那我們現在就開始吧,嘿嘿~<br />// 先來讓我們了解一下設備運動事件—— DeviceMotionEvent:返回設備關於加速度和旋轉的相關信息,其中加速度的數據包含以下三個方向:<br />// x:橫向貫穿手機螢幕;<br />// y:縱向貫穿手機螢幕;<br />// z:垂直手機螢幕。 <br />// 鑑於有些裝置沒有排除重力的影響,所以事件會傳回兩個屬性:<br />// 1、accelerationIncludingGravity(含重力的加速度)<br />// 2、acceleration(排除重力影響的加速度) <p>// 身為碼農,上碼是最直接的,come on,代號走起! <p>// 首先在頁面上要監聽運動傳感事件<br />function init(){<br />  if (window.DeviceMotionEvent) {<br />    // 移動瀏覽器支持運動傳感事件<br />    window 。 $("#yaoyiyaono").show();<br />  } <br />} <p>// 那麼,我們要如何計算使用者是否是在搖動手機呢?可以從以下幾點考慮:<br />// 1、其實用戶在搖動手機的時候始終都是以一個方向為主進行搖動的;<br />// 2、用戶在搖動手機的時候在x、 y、z三個方向都會有相應的想速度的變化;<br />// 3、不能把用戶正常的手機運動行為當做搖一搖(手機放在兜裡,走路的時候也會有加速度的變化)。 <br />// 從以上三點考慮,針對三個方向上的加速度進行計算,間隔測量他們,考察他們在固定時間段裡的變化率,而且需要確定一個閥值來觸發搖一搖之後的操作。 <p>// 首先,定義一個搖晃的閥值<br />var SHAKE_THRESHOLD = 3000;<br />// 定義一個變數保存的時間<br />var last_update = 0;<br />// 緊接著定義x、y、z記錄三個軸的資料以及上一次出發的時間<br />var x;<br />var y;<br />var z;<br />var last_x;<br />var last_y;<br />var last_z; <p>// 為了增加這個例子的一點無聊趣味性,增加一個計數器<br />var count = 0; <p>function deviceMotionHandler(eventData) {<br />  // 取得含重力的加速度<br />  var acceleration = eventData.accelerationIncludingGravity; <p>  // 取得目前時間<br />  var curTime = new Date().getTime(); <br />  var diffTime = curTime -last_update;<br />  /// 固定時間段<br /> {<br />    last_update = curTime; <p>    x = acceleration.x; <br />    y = acceleration.y; <br />    z = acceleration.y; < >    z = acceleration.z; > <p>    var speed = Math.abs(x y z - last_x - last_y - last_z) / diffTime * 10000; <p>    if (speed > SHAKE_THRESHOLD) { <br />      // TODO:在此處可以實現搖   、  $("#yaoyiyaoyes").hide( );<br />      $("#yaoyiyaoresult").show();<br />      $("#yaoyiyaoresult")。 /p> <p>    last_x = x; <br />    last_y = y; <br />    last_z = z; <br />  } <="＀} <) <br />="<o }<="> <<3] <o<at; <m<; <<a;<3] <o<; -size:20px;margin:10px;line-height:35px;display:none;"><br />  兄弟,如果您看到了我,說明您現在還不能搖,不是說您沒有資格用我,而是: <br />1.如果您使用PC機的瀏覽器,那可就不對了,我只愛手機瀏覽器;<br />  2、如果您是Android手機,那不好意思告訴你,android自帶的瀏覽器拋棄了我,您可以用UCWeb、chrome等第三方瀏覽器;<br />  3、如果您都不屬於以上兩種情況,那我只有告訴您:您改換手機啦! ! ! <br /></script>



<script><br />$(document).ready(function(){<br />init();<br />});<br />< /script><br /></script>
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles