当前位置:首页 > JavaScript

js实现震动

2026-04-07 02:48:14JavaScript

使用 navigator.vibrate API

现代浏览器支持通过 navigator.vibrate 方法触发设备震动。该方法接受一个参数,可以是数字(单次震动时长)或数组(震动模式交替)。

js实现震动

// 单次震动200毫秒
navigator.vibrate(200);

// 震动模式:震动200ms,暂停100ms,再震动300ms
navigator.vibrate([200, 100, 300]);

兼容性检查

调用前建议检查浏览器支持情况,避免在不支持的设备上报错:

js实现震动

if ('vibrate' in navigator) {
    navigator.vibrate(200);
} else {
    console.log('Vibration API not supported');
}

取消震动

通过传递 0 或空数组可以立即停止震动:

navigator.vibrate(0);  // 停止震动

注意事项

  • 用户交互要求:部分浏览器要求震动必须由用户交互(如点击事件)触发,不能在页面加载时自动执行。
  • 移动端支持:主要适用于移动设备,桌面浏览器可能不支持或无效。
  • 权限限制:某些浏览器可能需要用户授权震动权限。

封装实用函数

以下是一个封装好的震动函数,包含错误处理和回调:

function triggerVibration(pattern, onSuccess, onError) {
    try {
        if ('vibrate' in navigator) {
            const success = navigator.vibrate(pattern);
            if (success && typeof onSuccess === 'function') {
                onSuccess();
            } else if (!success && typeof onError === 'function') {
                onError('Vibration failed');
            }
        } else {
            throw new Error('API not supported');
        }
    } catch (err) {
        if (typeof onError === 'function') {
            onError(err.message);
        }
    }
}

// 使用示例
triggerVibration(
    [100, 50, 100],
    () => console.log('Vibrated successfully'),
    (err) => console.error('Error:', err)
);

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…