首页前端开发HTMLHTML5实现眼睛移动效果的示例

HTML5实现眼睛移动效果的示例

时间2024-01-23 00:44:03发布访客分类HTML浏览1041
导读:收集整理的这篇文章主要介绍了HTML5实现眼睛移动效果的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下最近用Of...
收集整理的这篇文章主要介绍了HTML5实现眼睛移动效果的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要介绍了基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近用Ofo小黄车App的时候,发现以前下方扫一扫变成了一个眼睛动的小黄人,觉得蛮有意思的,这里用HTML5仿一下效果。

ofo眼睛效果

效果分析

从效果中不难看出,是使用陀螺仪事件实现的。

这里先来看一下HTML5中陀螺仪事件的一些概念。

陀螺仪事件为deviceorientation,这里主要获取事件中的alpha,beta,gamma

aplha

行动装置水平放置时,绕 Z 轴旋转的角度,数值为 0 度到 360 度。

beta

行动装置水平放置时,绕 X 轴旋转的角度,数值为 -180 度到 180 度。

gamma

行动装置水平放置时,绕 Z 轴旋转的角度,数值为 -90 度到 90 度。

这里,只需要用到beta和gamma。

将apk解压,得到眼睛素材:

代码实现


!DOCTYPE html>
    html lang="en">
    head>
      meta charset="UTF-8">
      meta name="viewport" content="width=device-width, inITial-scale=1.0, maximum-scale=1.0, user-scalable=no">
      title>
    Document/title>
      style>
    #box{
          position: relative;
          width: 300px;
          margin: 0 auto;
    }
    #face{
          background-image: url(images/face.png);
          background-size: cover;
          width: 300px;
          height: 300px;
          position: absolute;
    }
    #eyeLeft{
          background-image: url(images/eye.png);
          background-Size: cover;
          width: 40px;
          height: 40px;
          position: absolute;
          top: 90px;
          left: 100px;
    }
    #eyeRight{
          background-image: url(images/eye.png);
          background-size: cover;
          width: 40px;
          height: 40px;
          position: absolute;
          top: 90px;
          left: 190px;
    }
    #glass{
          background-image: url(images/glass.png);
          background-size: cover;
          width: 300px;
          height: 300px;
          position: absolute;
    }
      /style>
    /head>
    body>
      p id="box">
        p id="face">
    /p>
        p id="eyeLeft">
    /p>
        p id="eyeRight">
    /p>
        p id="glass">
    /p>
        p id="LOG">
    /p>
      /p>
    script>
    'use strict';
/** author: 王乐平* date:2017.7.17*/VAR eyeLeftPosition = {
  start: [70, 78],  end: [100, 110]}
    ;
var eyeRightPosition = {
  start: [150, 78],  end: [190, 110]}
    ;
var eyeLeftcenterPosition = {
  x: (eyeLeftPosition.end[0] - eyeLeftPosition.start[0]) / 2 + eyeLeftPosition.start[0],  y: (eyeLeftPosition.end[1] - eyeLeftPosition.start[1]) / 2 + eyeLeftPosition.start[1]}
    ;
var eyeRightCenterPosition = {
  x: (eyeRightPosition.end[0] - eyeRightPosition.start[0]) / 2 + eyeRightPosition.start[0],  y: (eyeRightPosition.end[1] - eyeRightPosition.start[1]) / 2 + eyeRightPosition.start[1]}
    ;
    var r = 20;
    var eyeLeft = document.querySelector('#eyeLeft');
    var eyeRight = document.querySelector('#eyeRight');
if (window.DeviceOrientationEvent) {
  window.addEventListener('deviceorientation', function (event) {
    let {
alpha, beta, gamma}
     = event;
        eyeLeft.style.left = eyeLeftCenterPosition.x + gamma / 90 * r + 'px';
        eyeRight.style.left = eyeRightCenterPosition.x + gamma / 90 * r + 'px';
        eyeLeft.style.top = eyeRight.style.top                       = eyeLeftCenterPosition.y + beta / 180 * r + 'px';
        eyeRight.style.transform = eyeLeft.style.transform                          = eyeRight.style.webkitTransform                          = eyeLeft.style.WebkitTransform                          = 'rotate(' + beta + 'deg)';
  }
    , false);
}
 else {
      document.querySelector('body').innerHTML = '浏览器不支持DeviceOrientationEvent';
}
    /script>
    /body>
    /html>
    

最终效果

以上就是HTML5实现眼睛移动效果的示例的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

h5

若转载请注明出处: HTML5实现眼睛移动效果的示例
本文地址: https://pptw.com/jishu/583581.html
html5 canvas中绘制字体与图片以及图形模糊问题解决 HTML5 History模式是什么

游客 回复需填写必要信息