当前位置:首页 > VUE

vue实现手机震动

2026-01-18 02:14:43VUE

Vue 中实现手机震动的方法

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

检测浏览器支持性

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

vue实现手机震动

const isVibrationSupported = 'vibrate' in navigator;

基本震动实现

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

vue实现手机震动

// 单次震动 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 方案:

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 提供了多种方式实现动画效果,包括内置过渡系统、第三方库集成以及 CSS 动画。以下是常见实现方法: 使用 Vue 过渡系统 通过 <transition>…

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [..…

vue实现横向导航

vue实现横向导航

vue实现横向导航的方法 使用Flex布局实现横向导航 在Vue中可以通过Flex布局快速实现横向导航。创建一个组件,使用display: flex和flex-direction: row属性使导航项…

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成…

vue实现下拉层级

vue实现下拉层级

Vue实现下拉层级菜单 使用Vue实现下拉层级菜单可以通过递归组件或动态渲染的方式完成。以下是两种常见实现方法: 递归组件实现 创建一个递归组件处理多级菜单结构: <template…

vue自己实现下拉导航

vue自己实现下拉导航

实现下拉导航的基本思路 在Vue中实现下拉导航,可以通过结合Vue的响应式数据和事件绑定特性来完成。主要思路是利用v-show或v-if控制下拉菜单的显示与隐藏,并通过鼠标事件或点击事件触发状态变化。…