这次给大家带来基于HTML5陀螺仪实现移动动画效果,基于HTML5陀螺仪实现移动动画效果的注意事项有哪些,下面就是实战案例,一起来看一下。

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

ofo眼睛效果

效果分析

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

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

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

aplha

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

beta

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

gamma

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

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

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

代码实现

Document

#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;

}

'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';

}

最终效果

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

推荐阅读:

H5拖放API进行拖放排序

IE8不兼容rgba()如何处理

html5陀螺仪效果,基于HTML5陀螺仪实现移动动画效果相关推荐

  1. 基于Rebound制造绚丽的动画效果-入门篇

    基于Rebound制造绚丽的动画效果-入门篇 Rebound是什么? Rebound是一个来自 Facebook 公司的 Java物理和动画库.Rebound spring 模型可用于创建动画,让你感 ...

  2. html 图片墙效果,基于html5实现的图片墙效果

    温馨提示:本信息由[金聪采编]搜集整理发布,版权归原作者及发布者所有,您如有异议请 举报 或者 版权申诉. 本文实例讲述了基于html5实现的图片墙效果,分享给大家供大家参考.具体实现方法如下: 这里 ...

  3. html如何添加时钟效果,基于HTML5+CSS3实现简单的时钟效果

    目的: 利用html5,css实现钟摆效果 知识点: 1) 利用position/left/top和calc()实现元素的水平和垂直居中: 2) 利用CSS3的animation/transform/ ...

  4. html楼层效果,基于 HTML5 WebGL 的智慧楼宇可视化系统

    前言 可视化的智慧楼宇在 21 世纪是有急迫需求的,中国被世界称为"基建狂魔",全球高层建筑数量位居首位,所以对于楼宇的监控是必不可少.智慧楼宇可视化系统更多突出的是管理方面的功能 ...

  5. html5三维空间效果,基于HTML5的空间环境数据三维成像研究与应用

    摘要: 自上世纪五,六十年代载人航天技术发展以来,研究人员对空间环境开始进行系统化及规模化的研究.他们根据对地球轨道参数及地磁参数等的研究,确定了多种粒子或剂量,并开始对初级粒子及剂量进行测量和分析. ...

  6. html5 建筑物模型,基于HTML5的建筑物阴影实时模拟

    摘要: 随着HTML5的发布,Web GIS的发展有了新的机遇,它可以摒弃Flex,Silverlight等插件,HTML5以无插件的形式提供很多了API可以使Web GIS具有较强的交互功能,良好的 ...

  7. html5折叠卡片,基于HTML5折叠卡片式下拉菜单代码

    基于HTML5折叠卡片式下拉菜单代码.这是一款基于jQuery+CSS3+HTML5实现的下拉列表框特效代码.效果图如下: 实现的代码. hmtl代码: 爱编程 爱编程 jQuery特效 CSS3特效 ...

  8. html5画图程序,基于HTML5的Windows画图程序

    Windows 画图程序一直伴随着 Windows 各个版本,这个很简单,几乎没有什么用处的程序拥有最基本的绘图功能,很适合用来涂鸦.HTML5 的 Canvas 对象使在线绘图成为可能,虽然 HTM ...

  9. html5 倒计时插件,基于HTML5 time元素的倒计时jquery插件

    这是一款简单的基于HTML5 time元素的倒计时jquery插件.该jquery倒计时插件提供默认的翻牌样式,可以在所有支持HTML5 time元素的浏览器中正常工作. 安装 可以通过npm来安装j ...

最新文章

  1. 为什么要学习响应式设计
  2. 条款15: 让operator=返回*this的引用
  3. Design Pattern - Singleton(C#)
  4. select、poll、poll的比较(转)
  5. 【java.lang.UnsupportedClassVersionError】版本不一致出错
  6. matlab 的excel 对象,MATLAB 中的 COM 对象
  7. nodejs命令行执行程序_在NodeJS中编写命令行应用程序
  8. LeetCode —— 面试题 08.12. 八皇后(Python)
  9. 关于Cortex-M3处理器内核中断异常处理机制你了解多少?
  10. TCMalloc:线程缓存Malloc以及tcmalloc与ptmalloc性能对比
  11. 大数据时代的全能日志分析专家--Splunk安装与实践
  12. JavaScript文档对象模型概述(1)
  13. ubuntu jdk 安装 【转载】
  14. 知更鸟begin主题常见问题
  15. 数字图像处理-绪论(下)
  16. Jetson-TX2双声卡TLV320AIC32x4 alsa实现同时录音与播放
  17. windows 命令行代理设置
  18. C#WinForm 分屏教程合集
  19. 2021届校招求职流程全解析(IT企业和国企)
  20. 系统时间自动校对 让你准时每一天

热门文章

  1. 前以色列国防军安全技术成员教你做好 Serverless 追踪
  2. ORB—点局部特征原理
  3. 准大学生,如何预习计算机专业?
  4. 【S5P6818】6818开发板简介
  5. 阿拉丁 腾讯安全丨小程序安全产品上线,为企业应用安全合规保驾护航
  6. 使用MDT部署Windows Server 2003 R2
  7. 学校计算机老师关心学生的作文600字,【热门】学校学生作文600字三篇
  8. 回车和换行的一些事情
  9. PHP base64 编码转化图片并进行指定路径的保存和上传处理
  10. 去除法定节假日以及周末,计算请假时间