国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

移動端網頁實現搖一搖打開咨詢連接的方法

2024-04-25 20:19:36
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了移動端網頁實現搖一搖打開咨詢連接的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。

微信的搖一搖功能很強大,這個利用了手機的運動傳感器裝置的功能可以做很多有趣的事情,而在一般的web頁面中,很少有機會去用到這個功能,但也不代表這個功能不可以用,今天361源碼網就教大家如何在移動端網頁利用搖一搖實現一些有趣的功能。

在HTML5,devicemotion事件deviceorientation特性的運動傳感器的封裝時間裝置,你可以通過改變運動時間獲取設備的狀態,加速和其他數據(有另一個角度deviceorientation事件提供設備,定位等信息)。

而我們可以在前端通過DeviceMotion對設備運動狀態的判斷,幫助我們在網頁上就實現“搖一搖”的交互效果。

一、首先把監聽時間綁定給 deviceMotionHandler

//先判斷設備是否支持HTML5搖一搖功能

if (window.DeviceMotionEvent) {//獲取移動速度,得到device移動時相對之前某個時間的差值比window.addEventListener('devicemotion', deviceMotionHandler, false);}else{alert('您好,你目前所用的設置好像不支持重力感應哦!');}

二、獲取設備加速度信息  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;}

“搖一搖”的動作既“一定時間內設備了一定距離”,因此通過監聽上一步獲取到的x, y, z 值在一定時間范圍內的變化率,即可進行設備是否有進行晃動的判斷。

三、 而為了防止正常移動的誤判,需要給該變化率設置一個合適的臨界值

//設置臨界值,這個值可根據自己的需求進行設定,默認就3000也差不多了var shakeThreshold = 3000;//設置最后更新時間,用于對比var lastUpdate = 0;//設置位置速率var curShakeX=curShakeY=curShakeZ=lastShakeX=lastShakeY=lastShakeZ=0;

我們在這里設置100毫秒進行一次位置判斷,若前后x, y, z間的差值的絕對值和時間比率超過了預設的閾值,則判斷設備進行了搖晃操作。

以上三點就可以實現在web端的搖一搖功能,那么我們就通過這個功能來實現搖一搖打開新的鏈接,這里打開新鏈接的代碼我們用:

//鏈接自行替換window.open("http://m.survivalescaperooms.com");

奉上一段模擬微信搖一搖的全部代碼:鏈接: https://pan.baidu.com/s/1i5gPRKh 密碼: r61m

效果演示《HTML5模擬微信搖一搖特效代碼》

這個代碼能幫我們實現什么呢?最常見的莫過于企業站和醫療站在移動端搖一搖打開咨詢窗口了,但是在使用的過程中,361源碼網發現,通過上面打開新連接方法是無法正確返回到上一頁的,也就是一旦搖一搖打開聊天窗口,就無法返回網站了,這算是一個用戶體驗極差的設定,我們繼續優化。

以商務通為例,我們可以先定義一個打開商務通的函數swt()

//商務通引用(啟用商務通時開啟,商務通自帶js請自行引用function swt(e){       if(e!="" && e!=null){        openZoosUrl('chatwin','&e='+escape(e));        LR_HideInvite();        return false;    }else{        openZoosUrl();        LR_HideInvite();        return false;    }}

在搖一搖時,直接執行此函數(完整js代碼):

//先判斷設備是否支持HTML5搖一搖功能if (window.DeviceMotionEvent) {//獲取移動速度,得到device移動時相對之前某個時間的差值比window.addEventListener('devicemotion', deviceMotionHandler, false);}else{alert('您好,你目前所用的設置好像不支持重力感應哦!');}//設置臨界值,這個值可根據自己的需求進行設定,默認就3000也差不多了var shakeThreshold = 3000;//設置最后更新時間,用于對比var lastUpdate = 0;//設置位置速率var curShakeX=curShakeY=curShakeZ=lastShakeX=lastShakeY=lastShakeZ=0;function deviceMotionHandler(event){//獲得重力加速var acceleration =event.accelerationIncludingGravity;//獲得當前時間戳var curTime = new Date().getTime();if ((curTime - lastUpdate)> 100) {//時間差var diffTime = curTime -lastUpdate;lastUpdate = curTime;//x軸加速度curShakeX = acceleration.x;//y軸加速度curShakeY = acceleration.y;//z軸加速度curShakeZ = acceleration.z;var speed = Math.abs(curShakeX + curShakeY + curShakeZ - lastShakeX - lastShakeY - lastShakeZ) / diffTime * 10000;if (speed > shakeThreshold) {//播放音效shakeAudio.play();//商務通傳參swt('M站通用-搖一搖-咨詢');}lastShakeX = curShakeX;lastShakeY = curShakeY;lastShakeZ = curShakeZ;}}//預加搖一搖聲音var shakeAudio = new Audio();//搖一搖聲音路徑shakeAudio.src = '/sound/shake_sound.mp3';var shake_options = {preload : 'auto'}for(var key in shake_options){if(shake_options.hasOwnProperty(key) && (key in shakeAudio)){shakeAudio[key] = shake_options[key];} }

這樣就完美實現搖一搖打開咨詢連接了,十分方便。經過測試發現IOS:Safari 彈框/不播放音樂, Chroma 彈框/不播放音樂,UC彈框/不播放音樂。Andriod:UC彈框/播放音樂,Chroma 彈框/播放音樂,內置瀏覽器 彈框/播放音樂。至于其他鏈接,大家可自行擴展,代入即可。

此文為轉載,如果有版權歸屬,請發函至本站郵箱,我們會在最短時間內處理。


以上就是移動端網頁實現搖一搖打開咨詢連接的方法的全部內容,希望對大家的學習和解決疑問有所幫助,也希望大家多多支持武林網。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 老河口市| 时尚| 定安县| 双峰县| 基隆市| 和林格尔县| 郑州市| 许昌县| 大城县| 盘锦市| 宁津县| 阳城县| 梅河口市| 永福县| 珠海市| 铜山县| 永春县| 伽师县| 平武县| 郎溪县| 邢台市| 景泰县| 秀山| 缙云县| 武汉市| 西乌珠穆沁旗| 武定县| 通州区| 沈阳市| 海晏县| 普宁市| 定远县| 建湖县| 麦盖提县| 社会| 满城县| 博乐市| 甘泉县| 柞水县| 陕西省| 彭州市|