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


本文摘自PHP中文网,作者php中世界最好的语言,侵删。

今天教大家用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 从设备获取数据的频率, 单位是毫秒

代码部分

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<!DOCTYPE html>

<html>

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

  <title>摇一摇</title>

</head>

<body>

  <p>

    摇一摇

  </p>

  <script>

    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("你的设备不支持位置感应");

    }

  </script>

</body>

</html>


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

相关阅读:

html5中的DOM编程的实现步骤

HTML里的事件怎么使用

用canvas做出时钟实现步骤

以上就是H5做出手机摇一摇功能的实现步骤的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

基于HTML5陀螺仪实现移动动画效果

详解HTML5中localstorage存储json数据并读取json数据的实现方法

HTML5-表单输入验证详解(图文)

如何用h5实现拖放效果

HTML5无刷新改变当前url

如何在微信端HTML5页面调用分享接口

如何解决HTML5微信播放全屏问题的方法

HTML5通过postmessage进行跨域通信的方法

h5+c3+js实现楼层跳跃特效

h5中视频与音频标签和进度条如何使用

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...