首页前端开发HTML基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例

基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例

时间2024-01-24 20:41:21发布访客分类HTML浏览427
导读:收集整理的这篇文章主要介绍了基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。 最近用Ofo小黄车App的时候,发现以前下方扫一扫变成了一个眼睛动的小黄人,觉得蛮有意思的,这里用...
收集整理的这篇文章主要介绍了基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例,觉得挺不错的,现在分享给大家,也给大家做个参考。

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

ofo眼睛效果@H_777_5@

效果分析

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

这里先来看一下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>
      div id="box">
        div id="face">
    /div>
        div id="eyeLeft">
    /div>
        div id="eyeRight">
    /div>
        div id="glass">
    /div>
        div id="LOG">
    /div>
      /div>
    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>
    

最终效果

 

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

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

上一篇: 浅谈HTML5 服务器推送事件(Serv...下一篇:html5教你做炫酷的碎片式图片切换...猜你在找的html5相关文章 关于移动端h5开发相关内容总结2022-05-17html5教程-学表单的第二天2018-12-10html5教程-HTML5浏览器支持2018-12-10html5教程-HTML5智能表单2018-12-10html5教程-微信H5使用resLoader实现加载页效果2018-12-10html5教程-day01-初级-JS0-热身运动JS入门教程2018-12-10html5教程-html5shiv.js和respond.min.js2018-12-10html5教程-不同浏览器对于html5 audio标签和音频格式的兼容性2018-12-10html5教程-使用Html5实现手风琴案例2018-12-10html5教程-html5笔记2018-12-10 其他相关热搜词更多phpjavapython程序员load

若转载请注明出处: 基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
本文地址: https://pptw.com/jishu/585722.html
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数) H5调用相机拍照并压缩图片的实例代码

游客 回复需填写必要信息