html5陀螺仪效果,基于HTML5陀螺仪实现移动动画效果
这次给大家带来基于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陀螺仪实现移动动画效果相关推荐
- 基于Rebound制造绚丽的动画效果-入门篇
基于Rebound制造绚丽的动画效果-入门篇 Rebound是什么? Rebound是一个来自 Facebook 公司的 Java物理和动画库.Rebound spring 模型可用于创建动画,让你感 ...
- html 图片墙效果,基于html5实现的图片墙效果
温馨提示:本信息由[金聪采编]搜集整理发布,版权归原作者及发布者所有,您如有异议请 举报 或者 版权申诉. 本文实例讲述了基于html5实现的图片墙效果,分享给大家供大家参考.具体实现方法如下: 这里 ...
- html如何添加时钟效果,基于HTML5+CSS3实现简单的时钟效果
目的: 利用html5,css实现钟摆效果 知识点: 1) 利用position/left/top和calc()实现元素的水平和垂直居中: 2) 利用CSS3的animation/transform/ ...
- html楼层效果,基于 HTML5 WebGL 的智慧楼宇可视化系统
前言 可视化的智慧楼宇在 21 世纪是有急迫需求的,中国被世界称为"基建狂魔",全球高层建筑数量位居首位,所以对于楼宇的监控是必不可少.智慧楼宇可视化系统更多突出的是管理方面的功能 ...
- html5三维空间效果,基于HTML5的空间环境数据三维成像研究与应用
摘要: 自上世纪五,六十年代载人航天技术发展以来,研究人员对空间环境开始进行系统化及规模化的研究.他们根据对地球轨道参数及地磁参数等的研究,确定了多种粒子或剂量,并开始对初级粒子及剂量进行测量和分析. ...
- html5 建筑物模型,基于HTML5的建筑物阴影实时模拟
摘要: 随着HTML5的发布,Web GIS的发展有了新的机遇,它可以摒弃Flex,Silverlight等插件,HTML5以无插件的形式提供很多了API可以使Web GIS具有较强的交互功能,良好的 ...
- html5折叠卡片,基于HTML5折叠卡片式下拉菜单代码
基于HTML5折叠卡片式下拉菜单代码.这是一款基于jQuery+CSS3+HTML5实现的下拉列表框特效代码.效果图如下: 实现的代码. hmtl代码: 爱编程 爱编程 jQuery特效 CSS3特效 ...
- html5画图程序,基于HTML5的Windows画图程序
Windows 画图程序一直伴随着 Windows 各个版本,这个很简单,几乎没有什么用处的程序拥有最基本的绘图功能,很适合用来涂鸦.HTML5 的 Canvas 对象使在线绘图成为可能,虽然 HTM ...
- html5 倒计时插件,基于HTML5 time元素的倒计时jquery插件
这是一款简单的基于HTML5 time元素的倒计时jquery插件.该jquery倒计时插件提供默认的翻牌样式,可以在所有支持HTML5 time元素的浏览器中正常工作. 安装 可以通过npm来安装j ...
最新文章
- 为什么要学习响应式设计
- 条款15: 让operator=返回*this的引用
- Design Pattern - Singleton(C#)
- select、poll、poll的比较(转)
- 【java.lang.UnsupportedClassVersionError】版本不一致出错
- matlab 的excel 对象,MATLAB 中的 COM 对象
- nodejs命令行执行程序_在NodeJS中编写命令行应用程序
- LeetCode —— 面试题 08.12. 八皇后(Python)
- 关于Cortex-M3处理器内核中断异常处理机制你了解多少?
- TCMalloc:线程缓存Malloc以及tcmalloc与ptmalloc性能对比
- 大数据时代的全能日志分析专家--Splunk安装与实践
- JavaScript文档对象模型概述(1)
- ubuntu jdk 安装 【转载】
- 知更鸟begin主题常见问题
- 数字图像处理-绪论(下)
- Jetson-TX2双声卡TLV320AIC32x4 alsa实现同时录音与播放
- windows 命令行代理设置
- C#WinForm 分屏教程合集
- 2021届校招求职流程全解析(IT企业和国企)
- 系统时间自动校对 让你准时每一天