H5做出手机摇一摇功能的实现步骤

今天教大家用html5来在网页里实现一个很炫酷的功能,手机摇一摇。如果你之前做过手机端的开发,可能对于这样的功能非常了解。但是下面,我们将在web上首次实现这个功能。

方向事件deviceorientation

该事件实在设备方向发生变化时触发, 使用方法如下;

window.addEventListener(‘deviceorientation’, orientationHandler, true);

回调函数orientationHandler会接收到一个DeviceOrientationEvent类型参数, 包含以下信息.

属性名 说明

absolute 如果方向数据跟地球坐标系和设备坐标系有差异, 则为true

alpha 设备在alpha方向上旋转的角度, 范围为0-360

beta 设备在Beta方向上旋转的角度, 范围为-180-180

gamma 设备在Gamma方向上旋转的角度, 范围为-90-90

移动事件devicemotion

该事件实在设备位置发生变化时触发

window.addEventListener(‘devicemotion’, motionHandler, false);

该回调函数会接受DeviceMotionEvent类型参数, 包含以下信息.

属性名 说明

acceleration 设备在X,Y,Z三个轴的方向上移动的距离, 以抵消重力加速度

accelerationIncludingGravity 设备在X,Y,Z三个轴方向移动的距离, 包含重力加速度

rotationRate 设备在Alpha, Beta, Gamma三个方向旋转的角度

interval 从设备获取数据的频率, 单位是毫秒

代码部分

        摇一摇  

摇一摇

const SHAKE_SPEED = 300; let lastTime = 0;//上次变化的时间 let x = y = z = lastX = lastY = lastZ = 0;//位置变量初始化 function motionHandler(event) { let acceleration = event.accelerationIncludingGravity; let curTime = Date.now();//取得当前时间 if ((curTime - lastTime) > 120) { let diffTime = curTime - lastTime; lastTime = curTime; x = acceleration.x; y = acceleration.y; z = acceleration.z; //计算摇动速度 let speed = Math.abs(x + y + z - lastX - lastY - lastZ) / diffTime * 1000; if (speed > SHAKE_SPEED) { alert("你摇动了手机"); } lastX = x; lastY = y; lastZ = z; } } if(window.DeviceMotionEvent) { window.addEventListener('devicemotion', motionHandler, false); } else { alert("你的设备不支持位置感应"); }

相信看了这些案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

相关阅读:

html5中的DOM编程的实现步骤

HTML里的事件怎么使用

用canvas做出时钟实现步骤

以上就是H5做出手机摇一摇功能的实现步骤的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1545339.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月21日 16:55:05
下一篇 2025年12月21日 16:55:16

相关推荐

  • H5中的弹窗无法用webview弹出怎么解决

    我们偶尔会用到这样一种bug,虽然使用了webview,但是还无法吊起h5中的弹窗。那么怎么解决这个问题呢?我们来看一下。 问题: webview无法吊起H5中的弹窗。 解决方法: 如果是fragment,必须使用getactivity()上下文,不能用全家上下文,否则无法弹窗。 mWebView.…

    好文分享 2025年12月21日
    000
  • HTML实现简单的提示框

    本文我们将和大家分享HTML实现简单的提示框,由于项目中需要一个简单的提示框,就是鼠标放上去,可以提示相关信息,引用第三方的比较麻烦,所以,这里封装了一个很简单的HTML方法。 function show(obj,id) { var objp = $(“#”+id+””); /** 这里我们可以使用…

    2025年12月21日
    000
  • html5制作转盘的详解及实例

    今天给大家带来的案列是html5转盘实例,可以直接拿来做抽奖程序,有需要的朋友可以拿去使用,下面是案列代码。 html5制作转盘游戏 h1{ width: 100%; height: 3rem; line-height: 3rem; font-size: 1.8rem; color:#c60; te…

    好文分享 2025年12月21日
    000
  • HTML5中的progress元素的详细介绍及兼容性处理

    本篇文章主要为大家介绍,progress元素的基本属性以及兼容性处理。介绍完progress元素后,下面一个案列也帮助大家更好的理解,一起来看一下。、 一、progress元素基本了解 1.基本UI progress元素属于HTML5家族,指进度条。IE10+以及其他靠谱浏览器都支持。如下简单cod…

    好文分享 2025年12月21日
    000
  • 浏览器兼容HTML5和CSS3的问题

     html5和css3是非常好用并且功能强大的新属性,唯一的重大缺陷就是可能很多旧版浏览器不兼容,今天就给大家分享一下关于旧版的浏览器兼容html5和css3的问题。 1.让老式浏览器支持HTML5  HTML5能为我们做的事儿很多,最为可口的就是语义化标签的应用,如果你已经在Chrome或者其他支…

    好文分享 2025年12月21日
    000
  • H5里的postMessage API图文详解 详细介绍

    关于postmessage,虽然说是html5的功能但是支持ie8+,假如你的网站不需要支持ie6和ie7,那么可以使用window.postmessage。既可以跨域传递,也可以同域传递。 我只是简单的举一个应用场景,当然,这个功能很多地方可以使用。 假如你有一个页面,页面中拿到部分用户信息,点击…

    好文分享 2025年12月21日
    000
  • HTML5标签嵌套规则的详细介绍

    下面给大家带来一份html5标签嵌套规则的详细介绍,总结归纳的非常不错,值得大家作为参考,一起来看一下。 [1]分类 [2]子元素 [3]总结 前面的话   在html5中,元素的子元素可以是块级元素,这在以前是被认为不符合规则的。本文将详细介绍html5的标签嵌套规则 分类   html5出现之前…

    好文分享 2025年12月21日
    000
  • HTML网页优化压缩的实现步骤

    想要对自己的html网页实现优化压缩的话需要检查5个方面,分别是,将table改为div布局,缩减精简div、span、ul li等系列标签,删除多余空格,表格类型布局时候适当使用table替代div布局,html网页gzip压缩,将table改为div布局 。下面给大家详细的介绍一下 尽量将tab…

    好文分享 2025年12月21日
    000
  • 用H5制作烟花粒子特效的制作方法

    这次给大家带来用h5制作烟花粒子特效的制作方法,怎么用h5制作特效?h5制作烟花粒子特效的流程,h5制作烟花粒子特效的注意事项有哪些,一起来看一下。 Canvas烟花粒子特效制作 Canvas is not supported by your browser. Css部分:* { margin: 0…

    好文分享 2025年12月21日
    000
  • 用H5制作水滴特效教程

    给大家带来用h5制作h5制作水滴特效教程,怎么用h5制作特效?h5制作水滴特效的流程,h5制作水滴特效的注意事项有哪些,一起来看一下。 利用canvas 画布制作逼真的水滴特效 /* NOTE: The styles were added inline because Prefixfree need…

    好文分享 2025年12月21日
    000
  • 用H5和CSS3制作全屏背景轮换播放教程

    这次给大家带来用h5和css3制作全屏背景轮换播放的制作方法,怎么用h5制作特效?h5和css3在使用过程中的注意事项有哪些,下面就是实战案例,一起来看一下。 全屏背景轮换播放 #bg{ position:fixed; top:0; left:0; bottom:0; right:0; z-inde…

    好文分享 2025年12月21日
    000
  • HTML5响应式banner制作教程

    这次给大家带来用html5响应式banner制作方法,怎么用h5制作特效?html5响应式banner的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML5响应式banner MULTIPURPOSE THEME CRAS JUSTO ODIO, DAPIBUS AC FACILISIS R…

    好文分享 2025年12月21日
    000
  • 什么是js深拷贝和浅拷贝及其实现方式

    今天来给大家说一下js的js深拷贝和浅拷贝,它们有什么区别,有什么作用呢?下面给大家举例说明一下。 var m = { a: 10, b: 20 }var n = m;n.a = 15;// 这时m.a的值是多少 m.a会输出15,因为这是浅拷贝,n和m指向的是同一个堆,对象复制只是复制的对象的引用…

    好文分享 2025年12月21日
    000
  • HTML5视频音频实现步骤

    我们知道,常见的视频格式的组成部分有:画面、音频、编码格式,常见的音频格式有音频编码:acc、mp3、vorbis,在html5里,支持的视频格式有三种,今天就来说一下html5视频音频实现步骤 HTML5支持的视频格式:          Ogg=带有Theora视频编码+Vorbis音频编码的O…

    好文分享 2025年12月21日
    000
  • HTML5的新增了哪些标签元素

    大家知道h5新增了不少的元素标签,那么我们就给大家总结归纳一下,h5增加了哪些标签?这些标签都有什么作用。 Input  type=“XXX” Email 邮箱: 提示格式不正确 url   地址  :地址格式:http://www….. Number:数值型  立即学习“前端免费学习笔…

    好文分享 2025年12月21日
    000
  • HTML5里Canvas常用的绘图技巧

    在h5里我们会常用到canvas这个元素来绘制图形。那么我们今天就来介绍一下canvas怎么使用,canvas在哪些情形下可以使用。以及canvas的绘画技巧 canvas 用于在页面上 绘制图形 canvas概述: html5 canvas元素和javascript配合使用在页面上绘制图形 can…

    好文分享 2025年12月21日
    000
  • html5里交互元素的使用方法

    在h5里,交互元素就是和用户进行互动的元素,这一部分非常的重要,并且和之前的js控制的效果不同,h5相比于html增加了很多的交互元素,比如隐藏显示注脚就是其中的一个交互效果。 交互元素的使用 body{ font-size: 12px; } span{ font-weight: bold; } d…

    好文分享 2025年12月21日
    000
  • HTML5的标签元素怎么使用

    h5里面增加了一个 标签元素,那么我们要怎样使用呢?记得我们在html5版本以前布局网页底部版权时,都会习惯使用id=”footer”或class=”footer”来标记段落,但是在h5里有了这个标签之后,一切都简单了很多。 HTML5 标签元素 新增html5底部footer元素标签,对html …

    好文分享 2025年12月21日
    000
  • HTML5 标签怎么用

    这次我们来说一下对h5的footer标签,nav的基本语法和结构,nav配合什么标签使用,在什么情况下可以使用,帮助大家快速理解nav。 首先nav也是在html5中新增的元素标签。同时和其它新增标签一样,nav在传统html5以前版本Html布局中作为导航条相关常用命名来使用。 比如: 网站导航内…

    好文分享 2025年12月21日
    000
  • 怎样知道浏览器支不支持html5

    随着html5的技术的推广,现在全世界的开发人员几乎都在用h5建设自己的网站,但是这就出来了一个很大的弊端,有的老版本浏览器是不支持h5的,那我们怎么分别哪些支持哪些不支持呢?今天就给大家分享一个办法。 支持html5的浏览器; (1)Chrome,Firefox:支持html5很多年,而且有自动升…

    好文分享 2025年12月21日
    000

发表回复

登录后才能评论
关注微信