国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > HTML5 > 正文

基于HTML5陀螺儀實現ofo首頁眼睛移動效果的示例

2024-09-05 07:22:04
字體:
來源:轉載
供稿:網友

最近用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>  <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>

最終效果

 

 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牙克石市| 贵港市| 平泉县| 永安市| 七台河市| 饶阳县| 景宁| 宽甸| 故城县| 汤阴县| 岢岚县| 呼伦贝尔市| 新源县| 莱芜市| 奉贤区| 枣阳市| 海伦市| 辽宁省| 南涧| 松阳县| 娄烦县| 丰都县| 兴城市| 旬阳县| 莲花县| 西安市| 沧州市| 龙泉市| 德庆县| 旌德县| 喀什市| 宿松县| 郁南县| 花莲县| 滕州市| 凤城市| 永州市| 五河县| 嘉义县| 临夏县| 眉山市|