当前位置:首页 > VUE

vue实现手机震动

2026-01-18 02:14:43VUE

Vue 中实现手机震动的方法

在 Vue 项目中可以通过调用浏览器的 Vibration API 实现手机震动功能。以下是具体实现方式:

检测浏览器支持性

在调用震动功能前需检查浏览器是否支持该 API:

const isVibrationSupported = 'vibrate' in navigator;

基本震动实现

调用 navigator.vibrate() 方法触发震动,参数为毫秒数或震动模式数组:

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

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

Vue 组件封装示例

<template>
  <button @click="vibrate">点击震动</button>
</template>

<script>
export default {
  methods: {
    vibrate() {
      if (!navigator.vibrate) {
        alert('您的设备不支持震动功能');
        return;
      }

      // 震动模式:短-长-短
      navigator.vibrate([100, 50, 200]);
    }
  }
}
</script>

停止震动

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

navigator.vibrate(0);
// 或
navigator.vibrate([]);

注意事项

  1. 该 API 需要用户先与页面交互(如点击按钮)后才能触发
  2. iOS 设备普遍不支持此 API
  3. 长时间震动可能被浏览器限制
  4. 建议将震动功能包装在用户交互事件处理器中

兼容性处理

对于不支持原生震动的设备,可以尝试以下 fallback 方案:

vue实现手机震动

function safeVibrate(pattern) {
  if (navigator.vibrate) {
    navigator.vibrate(pattern);
  } else {
    console.warn('Vibration not supported');
    // 可以在此处添加替代反馈,如声音提示
  }
}

响应式封装示例

<template>
  <button @click="triggerVibration">震动反馈</button>
</template>

<script>
export default {
  data() {
    return {
      isSupported: false
    }
  },
  mounted() {
    this.isSupported = 'vibrate' in navigator;
  },
  methods: {
    triggerVibration() {
      if (this.isSupported) {
        navigator.vibrate([30, 50, 30]);
      }
    }
  }
}
</script>

标签: 手机vue
分享给朋友:

相关文章

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身: &…

实现vue组件

实现vue组件

Vue 组件的基本实现 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种方式: 单文件组件 (SFC) 使用 .vue 文件格式,…

vue 实现滚动

vue 实现滚动

实现滚动的基本方法 在Vue中实现滚动效果可以通过多种方式完成,包括使用原生JavaScript、CSS或第三方库。以下是一些常见的方法: 使用window.scrollTo方法实现页面滚动 可以通…

vue实现swipe

vue实现swipe

Vue实现Swipe功能的方法 使用第三方库(推荐) Vue生态中有多个成熟的轮播/滑动组件库,例如vue-awesome-swiper或swiper/vue。以下是基于swiper/vue的实现示例…

vue mvvm 实现

vue mvvm 实现

Vue MVVM 实现原理 Vue.js 的 MVVM(Model-View-ViewModel)架构通过数据绑定和响应式系统实现视图与数据的自动同步。以下是其核心实现机制: 数据劫持与响应式系统…

vue实现vr

vue实现vr

Vue 实现 VR 的方法 Vue 可以与 WebVR 或 WebXR API 结合使用,通过 Three.js、A-Frame 等库实现 VR 效果。以下是几种常见方法: 使用 A-Frame 框…