博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css3旋转的盒子
阅读量:5772 次
发布时间:2019-06-18

本文共 2523 字,大约阅读时间需要 8 分钟。

工作中一直做普通的网页,今天浏览到一篇做3d旋转的盒子的效果,感觉挺好玩,于是跟着教程练了练,在此做个记录

html

1
2
3
4
5
6

camera用来控制景深(perspective)

box包裹立方体六个面
face1-6是立方体的六个面
css

.camera {    width: 200px;    height: 200px;    perspective-origin: center;    perspective: 200px;}.box {    transform-style:preserve-3d;    position:relative;    width:100%;    height:100%;    border:1px dashed #000;}.face {    width: 100px;    height: 100px;    background: red;    display: flex;    align-items: center;    justify-content: center;    font-size: 38px;    color: white;    position: absolute;}.face1 {    background: #3498db;    transform:translateX(50px) translateY(50px) translateZ(50px);}.face2 {    background: #9b59b6;    transform-origin: 0 0;  //设置transform的基准点    transform:translateX(150px) translateY(50px) translateZ(50px) rotateY(90deg);}//transform是有顺序的,先旋转再平移和先平移再旋转的效果可能不同.face3 {    background: #f1c40f;    transform-origin: 0 0;    transform:translateX(50px) translateY(50px) translateZ(50px) rotateX(-90deg);}.face4 {    background: #7f8c8d;    transform-origin: 0 0;    transform:translateX(50px) translateY(150px) translateZ(50px) rotateX(-90deg);}.face5 {    background: #2ecc71;    transform-origin: 100% 100%;    transform: translateX(-50%) translateY(50px) translateZ(50px) rotateY(-90deg);}.face6 {    background: #34495e;    transform: translateX(50px) translateY(50px)  translateZ(-50px) rotateY(-180deg);}//做一个旋转的动画,看看6个面写的是否正确.box {    animation: rotate 4s linear infinite ;}@keyframes rotate{     0%{         -webkit-transform:rotateY(0) rotateX(0);     }     50%{         -webkit-transform:rotateY(-359.9deg) rotateX(0);     }     100% {         -webkit-transform:rotateY(-359.9deg) rotateX(-359.9deg);     }}

如果是手机观看的话,增加陀螺仪效果显得更nice

js

var box = document.querySelectorAll('.box');window.addEventListener('deviceorientation', function(event) {    var alpha = event.alpha,        beta = event.beta,        gamma = event.gamma;    box[0].style.webkitTransform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';    box[0].style.transform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';    box[0].style.mozTransform = 'rotateX(' + beta + 'deg) rotateY(' + gamma + 'deg) rotateZ(' + alpha + 'deg)';}, false);

附上作者忠告:

人在一个环境下生活太久,就容易产生惰性。因为不管你怎么活,明天太阳照样升起。
我们能做的,就是尽全力不让自己被这种慢性毒药所蛊惑,努力,努力冲开束缚你的结界。

转载地址:http://euoux.baihongyu.com/

你可能感兴趣的文章
结构化程序设计04 - 零基础入门学习Delphi13
查看>>
《精通javascript》一些原生js函数
查看>>
前端get和post那些事
查看>>
Ubuntu安装搜狗输入法笔记
查看>>
数据库学习(MySQL):JDBC的简单增删改查实现
查看>>
括号匹配(二)
查看>>
AS3.0 Array常用方法总结
查看>>
Sql入门教程
查看>>
slidingMenu默认显示菜单
查看>>
【转载】【转自AekdyCoin的组合数取模】
查看>>
spring3 循环依赖
查看>>
阅读笔记十六
查看>>
数据结构与算法设计--树的镜像
查看>>
最大子数组和
查看>>
软件工程学期总结
查看>>
二、Hadoop集群
查看>>
思科3750交换机堆叠配置指南
查看>>
不错,也想搭建h2weibo而且作者的这个博客也好,能问一下是怎么修改的吗,或者作者也可以写篇博......
查看>>
javaweb大全:地址来自 孤傲苍狼
查看>>
pom.xml 出错版
查看>>