亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

微信頁(yè)面監(jiān)聽搖一搖事件,并伴有音效

fuchenxuan / 2233人閱讀

摘要:原文出處最近要寫一個(gè)微信網(wǎng)頁(yè),需要監(jiān)聽手機(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...

最近要寫一個(gè)微信網(wǎng)頁(yè),需要監(jiān)聽手機(jī)搖動(dòng)事件,并且伴隨有聲音

在HTML5,devicemotion事件deviceorientation特性的運(yùn)動(dòng)傳感器的封裝時(shí)間裝置,你可以通過(guò)改變運(yùn)動(dòng)時(shí)間獲取設(shè)備的狀態(tài),加速和其他數(shù)據(jù)(有另一個(gè)角度deviceorientation事件提供設(shè)備,定位等信息)。

而通過(guò)DeviceMotion對(duì)設(shè)備運(yùn)動(dòng)狀態(tài)的判斷,則可以幫助我們?cè)诰W(wǎng)頁(yè)上就實(shí)現(xiàn)“搖一搖”的交互效果。

把監(jiān)聽事件綁定給 deviceMotionHandler

    if (window.DeviceMotionEvent) {
        window.addEventListener("devicemotion", deviceMotionHandler, false);
    } else {
        alert("本設(shè)備不支持devicemotion事件");
    }
    獲取設(shè)備加速度信息 accelerationIncludingGravity
    
    function deviceMotionHandler(eventData) {
        var acceleration = eventData.accelerationIncludingGravity,
        x, y, z;
        x = acceleration.x;
        y = acceleration.y;
        z = acceleration.z;
        document.getElementById("status").innerHTML = "x:"+x+"
y:"+y+"
z:"+z; }

“搖一搖”的動(dòng)作既“一定時(shí)間內(nèi)設(shè)備了一定距離”,因此通過(guò)監(jiān)聽上一步獲取到的x, y, z 值在一定時(shí)間范圍內(nèi) 的變化率,即可進(jìn)行設(shè)備是否有進(jìn)行晃動(dòng)的判斷。而為了防止正常移動(dòng)的誤判,需要給該變化率設(shè)置一個(gè)合適的臨界 值。

    var SHAKE_THRESHOLD = 800;
    var last_update = 0;
    var x = y = z = last_x = last_y = last_z = 0;
    
    if (window.DeviceMotionEvent) {
        window.addEventListener("devicemotion", deviceMotionHandler, false);
    } else {
    alert("本設(shè)備不支持devicemotion事件");
    }
    
    function deviceMotionHandler(eventData) {
        var acceleration = eventData.accelerationIncludingGravity;
        var curTime = new Date().getTime();
        
        if ((curTime - last_update) > 100) {
            var diffTime = curTime - last_update;
            last_update = curTime;
            x = acceleration.x;
            y = acceleration.y;
            z = acceleration.z;
            var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
            var status = document.getElementById("status");
            
            if (speed > SHAKE_THRESHOLD) {
                doResult();
            }
            last_x = x;
            last_y = y;
            last_z = z;
        }
    }

100毫秒進(jìn)行一次位置判斷,若前后x, y, z間的差值的絕對(duì)值和時(shí)間比率超過(guò)了預(yù)設(shè)的閾值,則判斷設(shè)備進(jìn)行 了搖晃操作。

下面是我改寫的代碼
    
    

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

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

相關(guān)文章

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

    摘要:剛剛過(guò)去的一年里基于微信的營(yíng)銷可謂是十分火爆,通過(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)銷可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)搖簽的小...

    curried 評(píng)論0 收藏0
  • HTML5一搖(上)—如何判斷設(shè)備搖動(dòng)

    摘要:剛剛過(guò)去的一年里基于微信的營(yíng)銷可謂是十分火爆,通過(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)銷可謂是十分火爆,通過(guò)轉(zhuǎn)發(fā)朋友圈帶來(lái)的病毒式傳播效果相信大家都不太陌生吧,剛好最近農(nóng)歷新年將至,我就拿一個(gè)搖簽的小...

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

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

0條評(píng)論

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