设备重力感应 window.DeviceOrientationEvent

设备屏幕方向与运动 https://developers.google.cn/web/fundamentals/native-hardware/device-orientation/

MDN deviceorientation文档 https://developer.mozilla.org/zh-CN/docs/Web/Events/deviceorientation

设备动作和方向事件可访问移动设备上的内置加速度计、陀螺仪和罗盘

Alpha 围绕 Z 轴的旋转
Beta 围绕 X 轴的旋转
Gamma 围绕 Y 轴的旋转

<!DOCTYPE html>
<html lang="en">

<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">
  <!-- Chrome, Firefox OS and Opera -->
  <meta name="theme-color" content="#ff4081">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <link rel="manifest" href="/manifest.json">
  <title>Ajanuw</title>
  <style>
    #img {
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%);
      transition: transform 1;
      width: 120px;
      height: 120px;
      background-image: url(http://per.kelantu.com/photos/1515232896-FnIf9c57Hf1-l7DUdBwlXdN1bcLv-ng0?e=3153600000&token=CT86R8zZYVXDyHWEWFoMX4pz0ksOzxtKCaC80si4:ZodhYJxq7jbwaeeCe_r_9de7Nf4=);
      background-image: image-set(
        url(http://per.kelantu.com/photos/1515232896-FnIf9c57Hf1-l7DUdBwlXdN1bcLv-ng0?e=3153600000&token=CT86R8zZYVXDyHWEWFoMX4pz0ksOzxtKCaC80si4:ZodhYJxq7jbwaeeCe_r_9de7Nf4=) 1x,
        url(http://per.kelantu.com/photos/1514437475-FlTozLVMxiq8Ctx0Mbh8G5Hc6hvk-ng0?e=3153600000&token=CT86R8zZYVXDyHWEWFoMX4pz0ksOzxtKCaC80si4:0Jf5nGsPWg5WhNUgQJisyMcGiaQ=) 2x
      );
      background-image: -webkit-image-set(
        url(http://per.kelantu.com/photos/1515232896-FnIf9c57Hf1-l7DUdBwlXdN1bcLv-ng0?e=3153600000&token=CT86R8zZYVXDyHWEWFoMX4pz0ksOzxtKCaC80si4:ZodhYJxq7jbwaeeCe_r_9de7Nf4=) 1x,
        url(http://per.kelantu.com/photos/1514437475-FlTozLVMxiq8Ctx0Mbh8G5Hc6hvk-ng0?e=3153600000&token=CT86R8zZYVXDyHWEWFoMX4pz0ksOzxtKCaC80si4:0Jf5nGsPWg5WhNUgQJisyMcGiaQ=) 2x
      );
    }
  </style>
</head>

<body>
  <div id="doeSupported"></div>
  <div id="doc"></div>
  <div id="img"></div>
  <script type="text/javascript">
  let w =  window.innerWidth;
  let h =  window.innerHeight;

  let ww = w / 170;
  let hh = h / 90;
    function set2(num){
      if(num){
        return num.toFixed(2);
      }
      return null;
    }
    function deviceOrientationHandler(e) {
      console.log( e);
      var doc = `
       Z 轴的旋转 => ${set2(e.alpha)};<br/>
       X 轴的旋转 => ${set2(e.beta)};<br/>
       Y 轴的旋转 => ${set2(e.gamma)};<br/>
      `;
      document.getElementById("doc").innerHTML = doc;
      update(e.beta, e.gamma, e.alpha);
    }
    function update(x,y,z){
      document.getElementById("img")
      .style.transform = `translate(${(y*ww)-60}px, ${(x*hh)-60}px) rotate(${z - 90}deg)`;
    }

    if (window.DeviceOrientationEvent) { // 设备方向
      window.addEventListener('deviceorientation', deviceOrientationHandler, false);
      document.getElementById("doeSupported").innerText = "Supported!";
    }

    function deviceMotionHandler(e) {
      console.log( e.acceleration);// 加速度
    }

    if(window.DeviceMotionEvent){ // 设备动作
      window.addEventListener('devicemotion', deviceMotionHandler);
    }
  </script>
</body>

</html>

转载于:https://www.cnblogs.com/ajanuw/p/8391854.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值