許多由瀏覽器廠商提供給咱們新的API接口,是專門針對移動用戶。這些簡單的API之一振動的API。振動的API容許開發者直接調用設備震動,使用JavaScript,在給定時間的振動模式。git
瀏覽器對振動API的支持狀況,一個好的習慣就是在使用以前要檢查一下當前你的應用環境、瀏覽器是否支持振動API。下面就是檢測的方法:github
var supportsVibrate = "vibrate" in navigator;複製代碼
在window.navigator
對象裏就只有一個關於振動的API:vibrate
。api
這個navigator.vibrate
函數能夠接受一個數字參數,也能夠接受一個數字數組,當使用數組參數時,奇數位的數值是震動秒數,偶數位爲等待秒數。數組
// 振動1秒
navigator.vibrate(1000);
// 振動屢次
// 參數分別是震動3秒,等待2秒,而後振動1秒
navigator.vibrate([3000, 2000, 1000]);複製代碼
若是想中止震動,你只須要向navigator.vibrate
方法裏傳入0
,或一個空數組:瀏覽器
// 中止振動
navigator.vibrate(0);
navigator.vibrate([]);複製代碼
對navigator.vibrate
方法的調用並不會引發手機循環振動;當參數是一個數字時,振動以後發生一次,而後就中止下來。當參數是數組時,震動會按數組裏的值震動,而後就中止振動。svg
咱們能夠簡單的使用setInterval
和 clearInterval
方法產生讓手機持續震動的效果:函數
var vibrateInterval;
// 開始震動
function startVibrate(duration) {
navigator.vibrate(duration);
}
// 中止震動
function stopVibrate() {
// 清除間隔和中止持續振動
if(vibrateInterval) clearInterval(vibrateInterval);
navigator.vibrate(0);
}
//在給定的持續時間和間隔時開始持續的振動
//假定一個數字值
function startPeristentVibrate(duration, interval) {
vibrateInterval = setInterval(function() {
startVibrate(duration);
}, interval);
}複製代碼
上面的這段代碼只是針對振動參數是一個數字的狀況,若是參數是數組,你還須要計算一下它的總共持續時間,而後根據它的特徵來進行循環。spa