茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    HTML5 DeviceOrientation實現(xiàn)手機網站搖一搖功能代碼實例
    來源:易賢網 閱讀:1339 次 日期:2016-07-09 11:33:30
    溫馨提示:易賢網小編為您整理了“HTML5 DeviceOrientation實現(xiàn)手機網站搖一搖功能代碼實例”,方便廣大網友查閱!

    這篇文章主要介紹了HTML5 DeviceOrientation實現(xiàn)手機網站搖一搖功能代碼實例,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下

    介紹之前做兩個聲明:

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

    代碼如下:

    <script>

    // DeviceOrientation將底層的方向傳感器和運動傳感器進行了高級封裝,提供了DOM事件的支持。

    // 這個特性包括兩個事件:

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

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

    // 使用這兩個事件,可以很能夠實現(xiàn)重力感應、指南針等有趣的功能。</p> <p>// 現(xiàn)在在很多Native應用中有一個非常常見而時尚的功能 —— 搖一搖,搖一搖找人、搖一搖看新聞、搖一搖找金幣。。。

    // 也許在android或者ios的客戶端上對這個功能你已經很了解了,但是現(xiàn)在,我將告訴你如何在手機網頁上實現(xiàn)搖一搖的功能。</p> <p>// OK,那我們現(xiàn)在就開始吧,嘿嘿~

    // 先來讓我們了解一下設備運動事件 —— DeviceMotionEvent:返回設備關于加速度和旋轉的相關信息,其中加速度的數據包含以下三個方向:

    // x:橫向貫穿手機屏幕;

    // y:縱向貫穿手機屏幕;

    // z:垂直手機屏幕。

    // 鑒于有些設備沒有排除重力的影響,所以該事件會返回兩個屬性:

    // 1、accelerationIncludingGravity(含重力的加速度)

    // 2、acceleration(排除重力影響的加速度)</p> <p>// 作為碼農,上代碼才是最直接的,come on,代碼走起!</p> <p>// 首先在頁面上要監(jiān)聽運動傳感事件 

    function init(){

      if (window.DeviceMotionEvent) {

        // 移動瀏覽器支持運動傳感事件

        window.addEventListener('devicemotion', deviceMotionHandler, false);

        $("#yaoyiyaoyes").show();

      } else{

        // 移動瀏覽器不支持運動傳感事件

        $("#yaoyiyaono").show();

      } 

    }</p> <p>// 那么,我們如何計算用戶是否是在搖動手機呢?可以從以下幾點進行考慮:

    // 1、其實用戶在搖動手機的時候始終都是以一個方向為主進行搖動的;

    // 2、用戶在搖動手機的時候在x、y、z三個方向都會有相應的想速度的變化;

    // 3、不能把用戶正常的手機運動行為當做搖一搖(手機放在兜里,走路的時候也會有加速度的變化)。

    // 從以上三點考慮,針對三個方向上的加速度進行計算,間隔測量他們,考察他們在固定時間段里的變化率,而且需要確定一個閥值來觸發(fā)搖一搖之后的操作。</p> <p>// 首先,定義一個搖動的閥值

    var SHAKE_THRESHOLD = 3000;

    // 定義一個變量保存上次更新的時間

    var last_update = 0;

    // 緊接著定義x、y、z記錄三個軸的數據以及上一次出發(fā)的時間

    var x;

    var y;

    var z;

    var last_x;

    var last_y;

    var last_z;</p> <p>// 為了增加這個例子的一點無聊趣味性,增加一個計數器

    var count = 0;</p> <p>function deviceMotionHandler(eventData) {

      // 獲取含重力的加速度

      var acceleration = eventData.accelerationIncludingGravity; </p> <p>  // 獲取當前時間

      var curTime = new Date().getTime(); 

      var diffTime = curTime -last_update;

      // 固定時間段

      if (diffTime > 100) {

        last_update = curTime; </p> <p>    x = acceleration.x; 

        y = acceleration.y; 

        z = acceleration.z; </p> <p>    var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000; </p> <p>    if (speed > SHAKE_THRESHOLD) { 

          // TODO:在此處可以實現(xiàn)搖一搖之后所要進行的數據邏輯操作

          count++;

          $("#yaoyiyaoyes").hide();

          $("#yaoyiyaoresult").show();

          $("#yaoyiyaoresult").html("搖你妹!第" + count + "個了!");

        }</p> <p>    last_x = x; 

        last_y = y; 

        last_z = z; 

      } 

    </script>

    <div id="yaoyiyaono" style="font-size:20px;margin:10px;line-height:35px;display:none;">

      兄弟,如果您看到了我,說明您現(xiàn)在還不能搖,不是說您沒有資格用我,而是:</br>

      1、如果您使用PC機的瀏覽器,那可就不對了,我只愛手機瀏覽器;</br>

      2、如果您是Android手機,那不好意思告訴你,android自帶的瀏覽器拋棄了我,您可以用UCWeb、chrome等第三方瀏覽器;</br>

      3、如果您都不屬于以上兩種情況,那我只有告訴您:您改換手機啦!?。?lt;/br>

    </div>

    <div id="yaoyiyaoyes" style="font-size:20px;margin:10px;line-height:50px;display:none;">

      兄弟,搖一個吧,說不定有一個清純的妹子等著你呢!

    </div>

    <div id="yaoyiyaoresult" style="font-size:20px;margin:10px;line-height:50px;display:none;"></div>

    <script>

    $(document).ready(function(){

    init();

    });

    </script>

    更多信息請查看網頁制作

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網