使用 Vibration API 进行网页振动效果

Vibration API 是一种简单的 JavaScript API,可以让网页通过振动设备(如手机)的振动功能来提供触觉反馈。这在创建更加互动和沉浸式的用户体验时非常有用。本文将介绍如何在网页中使用 Vibration API 实现振动效果。

什么是 Vibration API?

Vibration API 允许网页通过调用设备的振动功能来提供触觉反馈。这个 API 主要用于移动设备,因为大多数桌面设备不支持振动功能。

基本用法

Vibration API 非常简单,只需要调用 navigator.vibrate() 方法即可触发设备振动。该方法可以接受一个时间参数(以毫秒为单位),或者一个数组来定义振动模式。

触发单次振动

要触发一次振动,可以传递一个整数值作为参数,这个值表示振动持续的时间(以毫秒为单位)。

// 触发一次200毫秒的振动
navigator.vibrate(200);

创建振动模式

通过传递一个数组,可以定义一系列振动和停止的时间,从而创建振动模式。例如,下面的代码将振动200毫秒,停止100毫秒,然后再振动300毫秒:

// 创建一个振动模式:振动200ms,停止100ms,再振动300ms
navigator.vibrate([200, 100, 300]);

停止振动

传递一个0或空数组可以立即停止振动。

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

检查浏览器支持

在使用 Vibration API 之前,最好检查一下浏览器是否支持这个 API。

if ("vibrate" in navigator) {console.log("浏览器支持 Vibration API");
} else {console.log("浏览器不支持 Vibration API");
}

示例:点击按钮触发振动

我们可以通过一个简单的示例来演示如何使用 Vibration API。在这个示例中,当用户点击按钮时,设备会振动。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vibration API 示例</title><style>#vibrateButton {padding: 10px 20px;font-size: 16px;}</style>
</head>
<body><button id="vibrateButton">点击我触发振动</button><script>document.getElementById('vibrateButton').addEventListener('click', function() {if ('vibrate' in navigator) {navigator.vibrate([200, 100, 200, 100, 200]);} else {alert('您的设备不支持振动功能');}});</script>
</body>
</html>

结论

Vibration API 提供了一种简单而有效的方法来增强网页的互动性,特别是在移动设备上。通过使用这个 API,我们可以为用户提供触觉反馈,从而提升用户体验。希望这篇文章能帮助你更好地理解和使用 Vibration API。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/28175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么叫做刚性兑付

在中国&#xff0c;传统的银行理财产品通常承诺固定的收益&#xff0c;投资者购买理财产品时&#xff0c;往往期望到期后能够按照约定的收益率获得回报&#xff0c;这种现象被称为“刚性兑付”。然而&#xff0c;随着金融市场的发展和监管政策的调整&#xff0c;为了降低金融系…

vue的安装配置并创建项目

npm 工具的安装 安装node.js之后&#xff0c;npm工具会自动安装到系统环境中 网址:https://nodejs.org/en vue的安装 安装vue并创建项目 npm create vuelatest 进入项目之后&#xff0c;然后启动npm run dev 解决方法&#xff1a; npm install -g create-vite 再次启动 通…

13.泛型、trait和生命周期(下)

目录 6. 生命周期与引用有效性6.1 生命周期引入6.2 得到长度最大的String值6.3 生命周期标注语法1&#xff09;说明2&#xff09;普通标注示例3&#xff09;函数参数中的生命周期标注 6.4 深入理解生命周期6.5 结构体定义中的生命周期标注6.6 生命周期省略 6.7 方法定义中的生命…

应急响应 | 基本技能 | 01-系统排查

系统排查 目录 系统基本信息 Windows系统Linux系统 用户信息 Windows系统 1、命令行方式2、图形界面方法3、注册表方法4、wmic方法 Linux系统 查看所有用户信息分析超级权限账户查看可登录的用户查看用户错误的登录信息查看所有用户最后的登录信息查看用户最近登录信息查看当…

机器学习周报第46周

目录 摘要Abstract一、文献阅读1.1 摘要1.2 研究背景1.3 论文方法1.4 模块分析1.5 网络规格1.6 高效的端到端对象检测1.7 mobile former模块代码 目录 摘要Abstract一、文献阅读1.1 摘要1.2 研究背景1.3 论文方法1.4 模块分析1.5 网络规格1.6 高效的端到端对象检测1.7 mobile f…

btstack协议栈实战篇--SPP Server - Heartbeat Counter over RFCOMM

btstack协议栈---总目录_bt stack是什么-CSDN博客 目录 1.SPP Service Setup 2.Periodic Timer Setup 3.Bluetooth Logic 4.btstack_main 5.log信息 串行端口配置文件(SPP)被广泛使用,因为它通过蓝牙。SPP反例演示了如何设置SPP服务,并通过RFCOMM提供周期性定时…

C++ 58 之 计算器案例

虚函数,vitual function C动态多态性是通过虚函数来实现的&#xff0c;虚函数允许子类&#xff08;派生类&#xff09;重新定义父类&#xff08;基类&#xff09;成员函数&#xff0c;而子类&#xff08;派生类&#xff09;重新定义父类&#xff08;基类&#xff09;虚函数的做…

day38-39| 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 62.不同路径 343. 整数拆分 96.不同的二叉搜索树

文章目录 前言动态规划理论基础509. 斐波那契数思路方法一 完整动态规划方法二 dp简化版方法三 使用递归 70. 爬楼梯思路方法一 动态规划方法一2 教程里面的简化方法方法二 拓展 746. 使用最小花费爬楼梯思路方法一方法二 拓展 62.不同路径思路 动态规划方法一方法二 递归 63. …

设计模式学习(二)工厂模式——工厂方法模式

设计模式学习&#xff08;二&#xff09;工厂模式——工厂方法模式 前言工厂方法模式简介示例优点缺点使用场景 前言 前一篇文章介绍了简单工厂模式&#xff0c;提到了简单工厂模式的缺点&#xff08;违反开闭原则&#xff0c;扩展困难&#xff09;&#xff0c;本文要介绍的工…

Linux系统内核作用

Linux 内核主要有以下重要作用&#xff1a; 1. 进程管理&#xff1a;负责进程的创建、调度、终止等&#xff0c;合理分配 CPU 资源给各个进程&#xff0c;确保多任务的高效运行。 2. 内存管理&#xff1a;管理系统的物理内存和虚拟内存&#xff0c;包括内存分配、回收、页面交换…

Hadoop 2.0:主流开源云架构(四)

目录 五、Hadoop 2.0访问接口&#xff08;一&#xff09;访问接口综述&#xff08;二&#xff09;浏览器接口&#xff08;三&#xff09;命令行接口 六、Hadoop 2.0编程接口&#xff08;一&#xff09;HDFS编程&#xff08;二&#xff09;Yarn编程 五、Hadoop 2.0访问接口 &am…

java打印helloworld

源代码 public class Function1 {public static void main(String[] args) {System.out.println("hello world");}} 打印结果

MongoDB 自动增长

MongoDB 自动增长 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;以其灵活的数据模型和强大的查询语言而闻名。在关系型数据库中&#xff0c;我们通常使用自动增长的整数作为主键&#xff0c;以确保唯一性。然而&#xff0c;MongoDB 的文档模型与此略有不同。MongoDB 使用 _i…

为什么说Python 是胶水语言?

​ "Python 是胶水语言"这一说法是指它很擅长将不同的程序或代码库连接在一起&#xff0c;能够让来自不同编程语言或框架的组件无缝协作。Python 具有丰富的库和简单的语法&#xff0c;使得它可以轻松调用其他语言编写的程序或使用不同技术栈的模块。 ​ 以下是几个…

linux下nvidia驱动安装-ubuntu22.04安装2060-notebook驱动

原文链接&#xff1a;linux下gcc编译安装与卸载-ubuntu22.04安装gcc-12.3.0 导言 nvidia驱动是显卡稳定运行的重要保证&#xff0c;不同的显卡有不同驱动&#xff0c;不同驱动对操作系统/cuda支持都存在一定差别。本次驱动安装主要完成2060-notebook显卡在linux系统下的驱动安…

C学习自学笔记-会陆续完善对应章节编程经典例子

C学习笔记 0>C语言概述 为什么学习C语言 1&#xff09;C的起源和发展------了解即可 B语言、C语言、C语言的产生地&#xff1a;都出自 美国贝尔实验室 2&#xff09;C的特点 优点&#xff1a;代码量小、速度快、功能强大 缺点&#xff1a;危险性高、开发周期长、可移植性…

可持久化数据结构详解与实现

一、引言 在计算机科学中&#xff0c;数据结构是用于组织、存储和管理数据的方式。然而&#xff0c;随着数据量的不断增长和数据处理需求的复杂化&#xff0c;传统的数据结构在某些场景下显得力不从心。为了应对这些挑战&#xff0c;可持久化数据结构应运而生。可持久化数据结…

MATLAB直方图中bin中心与bin边界之间的转换

要将 bin 中心转换为 bin 边界&#xff0c;请计算 centers 中各连续值之间的中点。 d diff(centers)/2; edges [centers(1)-d(1), centers(1:end-1)d, centers(end)d(end)];要将 bin 边界转换为bin 中心 bincenters binedges(1:end-1)diff(binedges)/2;

【AI应用探讨】— 星火大模型应用场景

目录 1 金融行业 2 零售行业 3 物流行业 4 教育行业 5 办公场景 6 医疗场景 7 工业场景 1 金融行业 风险评估与风控决策&#xff1a;星火大模型可以利用大数据和人工智能技术&#xff0c;对客户的信用数据、行为数据等进行分析和建模&#xff0c;帮助金融机构实现更精确…

Qt事件系统

概述 在Qt中&#xff0c;事件是对象&#xff0c;派生自抽象的QEvent类&#xff0c;它表示应用程序内部发生的事情或作为应用程序需要知道的外部活动的结果。事件可以由QObject子类的任何实例接收和处理&#xff0c;但它们与小部件特别相关。本文档描述了在典型应用程序中如何传…