当前位置:首页 > VUE

vue实现手机震动

2026-02-18 18:42:04VUE

使用Vibration API实现手机震动

Vue中可以通过调用浏览器的Vibration API实现手机震动功能。该API允许控制设备的振动硬件,适合在移动端浏览器中使用。

检查浏览器支持情况

在调用振动API前,应该先检查浏览器是否支持该功能:

const isVibrationSupported = 'vibrate' in navigator;

基本震动实现

简单的单次震动可以通过以下代码实现:

vue实现手机震动

// 震动100毫秒
navigator.vibrate(100);

// 在Vue方法中调用
methods: {
  vibrate() {
    if ('vibrate' in navigator) {
      navigator.vibrate(100);
    }
  }
}

震动模式

可以设置更复杂的震动模式,传入数组指定震动和间隔时间:

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

停止震动

要取消当前震动,可以调用:

vue实现手机震动

navigator.vibrate(0);

Vue组件封装示例

可以封装成可复用的Vue组件:

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

<script>
export default {
  methods: {
    vibrate() {
      if (!('vibrate' in navigator)) {
        console.warn('Vibration API not supported');
        return;
      }

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

注意事项

振动API在iOS设备上支持有限,某些版本可能不支持。建议始终检查API可用性。

长时间或频繁震动可能影响用户体验,应谨慎使用。某些浏览器可能限制振动时长或需要用户手势触发。

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

相关文章

vue优秀实现

vue优秀实现

Vue.js 优秀实现方法 响应式数据管理 使用 Vue 的 ref 和 reactive 处理基础类型和对象类型数据,结合 computed 计算属性优化渲染性能。对于复杂状态,推荐 Pinia 替…

vue 实现grid

vue 实现grid

在Vue中实现Grid布局可以通过多种方式完成,以下是几种常见的方法: 使用CSS Grid布局 CSS Grid是一种强大的布局系统,可以直接在Vue组件的样式中使用。以下是一个简单的示例:…

vue vnode实现

vue vnode实现

Vue VNode 实现原理 VNode(Virtual Node)是 Vue 的核心概念之一,用于描述真实 DOM 的轻量级虚拟表示。VNode 的实现涉及以下关键点: VNode 的基本结构…

vue实现切换

vue实现切换

Vue 实现切换功能的方法 在 Vue 中实现切换功能可以通过多种方式实现,以下是一些常见的方法: 使用 v-if 和 v-else 指令 通过条件渲染实现切换功能,适用于简单的显示/隐藏场景。…

vue拖拽实现

vue拖拽实现

Vue 拖拽实现方法 使用 HTML5 原生拖拽 API HTML5 提供了原生拖拽 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 drop 事…

vue实现发帖

vue实现发帖

使用 Vue 实现发帖功能 前端实现 创建发帖表单组件,包含标题和内容输入框,以及提交按钮。使用 v-model 绑定表单数据。 <template> <div>…