成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

HTML5搖一搖(上)—如何判斷設(shè)備搖動(dòng)

curried / 2948人閱讀

摘要:剛剛過(guò)去的一年里基于微信的營(yíng)銷(xiāo)可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)搖簽的小例子來(lái)談一談中如何調(diào)用手機(jī)重力感應(yīng)的接口演示搖一搖,萬(wàn)福簽什么是重力感應(yīng)說(shuō)到重力感應(yīng)有一個(gè)東西不得

剛剛過(guò)去的一年里基于微信的H5營(yíng)銷(xiāo)可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)“搖簽”的小例子來(lái)談一談HTML5中如何調(diào)用手機(jī)重力感應(yīng)的接口

演示demo:“搖一搖,萬(wàn)福簽”

什么是重力感應(yīng)

說(shuō)到重力感應(yīng)有一個(gè)東西不得不提,那就是就是陀螺儀,陀螺儀就是內(nèi)部有一個(gè)陀螺,陀螺儀一旦開(kāi)始旋轉(zhuǎn),由于輪子的角動(dòng)量,陀螺儀有抗拒方向改變的特性,它的軸由于陀螺效應(yīng)始終與初始方向平行,這樣就可以通過(guò)與初始方向的偏差計(jì)算出實(shí)際方向。

手機(jī)中的方位軸



在Web應(yīng)用中調(diào)用手機(jī)陀螺儀接口

具體實(shí)現(xiàn)搖一搖可以通過(guò)HTML5中的DeviceOrientationEvent或者DeviceMotionEvent,二者的區(qū)別在于DeviceOrientation只是判斷用戶(hù)設(shè)備的偏轉(zhuǎn)角度,而DeviceMotion則可以計(jì)算用戶(hù)手機(jī)移動(dòng)的加速度

//搖一搖(使用DeviceOrientation事件, 本質(zhì)是計(jì)算偏轉(zhuǎn)角)
if(window.DeviceOrientationEvent){
    var lastAcc;    // 用來(lái)存儲(chǔ)上一次的deviceorientation事件
    $(window).on("deviceorientation", function(event) {
        var delA = Math.abs(event.alpha - lastAcc.alpha);    // alpha軸偏轉(zhuǎn)角
        var delB = Math.abs(event.beta - lastAcc.beta);    // beta軸偏轉(zhuǎn)角
        var delG = Math.abs(event.gamma - lastAcc.gamma);    // gamma軸偏轉(zhuǎn)角
        if ( (delA > 15 && delB > 15) || (delA > 15 && delG > 15) || (delB > 15 || delG > 15)) {
            // 用戶(hù)設(shè)備搖動(dòng)了,觸發(fā)響應(yīng)操作
            // 此處的判斷依據(jù)是任意兩個(gè)軸篇轉(zhuǎn)角度大于15度
            alert("搖了");
        }
        lastAcc = event;    // 存儲(chǔ)上一次的event
    });
//搖一搖(使用DeviceMotion事件, 推薦,應(yīng)為可以計(jì)算加速度)
if(window.DeviceMotionEvent) {
    var speed = 25;    // 用來(lái)判定的加速度閾值,太大了則很難觸發(fā)
    var x, y, z, lastX, lastY, lastZ;
    x = y = z = lastX = lastY = lastZ = 0;

    window.addEventListener("devicemotion", function(event){
        var acceleration = event.accelerationIncludingGravity;
        x = acceleration.x;
        y = acceleration.y;
        if(Math.abs(x-lastX) > speed || Math.abs(y-lastY) > speed) {
            // 用戶(hù)設(shè)備搖動(dòng)了,觸發(fā)響應(yīng)操作
            // 此處的判斷依據(jù)是用戶(hù)設(shè)備的加速度大于我們?cè)O(shè)置的閾值
            alert("搖了");
        }
        lastX = x;
        lastY = y;
    }, false);
}
搖一搖的代碼判斷邏輯
var isStarted = false;    // 是否開(kāi)始搖動(dòng)

// 開(kāi)始搖簽
function start() {
    isStarted = true;
    $(".qiancover").hide();    //把封面背景上的靜態(tài)簽筒隱藏
    $(".decode").hide();    // 解簽頁(yè)面隱藏
    $(".result").show();    // 把簽筒搖動(dòng)的div顯示出來(lái)
    // setTimeout(showDecode, 3000);
}

// 顯示正在解簽
function showDecode() {
    $(".result").hide();    // 把簽筒搖動(dòng)的div隱藏起來(lái)
    $(".decode").show();    // 顯示正在解簽
    setTimeout(jumpToDecode, 3000);
}

// 跳至簽文頁(yè)面
function jumpToDecode(){
    var urls = ["#", "#"];    // 用來(lái)存簽文結(jié)果頁(yè)面
    var jumpTo = urls[parseInt(Math.random() * urls.length)];    // 隨機(jī)跳轉(zhuǎn)至簽文結(jié)果頁(yè)面
    window.location = jumpTo;
};

傳送門(mén):HTML5搖一搖(下)—如何實(shí)現(xiàn)簽筒搖動(dòng)動(dòng)畫(huà)

博客原文(持續(xù)更新):HTML5搖一搖(上)—如何判斷設(shè)備搖動(dòng)

示例代碼:https://github.com/lionrock/H...

參考文檔:DeviceOrientation Event Specification

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78499.html

相關(guān)文章

  • HTML5一搖)—如何判斷設(shè)備搖動(dòng)

    摘要:剛剛過(guò)去的一年里基于微信的營(yíng)銷(xiāo)可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)搖簽的小例子來(lái)談一談中如何調(diào)用手機(jī)重力感應(yīng)的接口演示搖一搖,萬(wàn)福簽什么是重力感應(yīng)說(shuō)到重力感應(yīng)有一個(gè)東西不得 剛剛過(guò)去的一年里基于微信的H5營(yíng)銷(xiāo)可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)搖簽的小...

    WilsonLiu95 評(píng)論0 收藏0
  • 微信頁(yè)面監(jiān)聽(tīng)一搖事件,并伴有音效

    摘要:原文出處最近要寫(xiě)一個(gè)微信網(wǎng)頁(yè),需要監(jiān)聽(tīng)手機(jī)搖動(dòng)事件,并且伴隨有聲音在,事件特性的運(yùn)動(dòng)傳感器的封裝時(shí)間裝置,你可以通過(guò)改變運(yùn)動(dòng)時(shí)間獲取設(shè)備的狀態(tài),加速和其他數(shù)據(jù)有另一個(gè)角度事件提供設(shè)備,定位等信息。 原文出處:http://i.jakeyu.top/2016/05/0... 最近要寫(xiě)一個(gè)微信網(wǎng)頁(yè),需要監(jiān)聽(tīng)手機(jī)搖動(dòng)事件,并且伴隨有聲音 在HTML5,devicemotion事件devic...

    fuchenxuan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<