css3立体旋转动画

demo地址

效果图

在别人网站上看到一个立体旋转的例子,然后突然想到自己前几天学习的css3旋转,就试着做了一个例子,看起来有一些粗糙。

html结构很简单:

<div>
    <ul class="ani">
      <li class="r1">1</li>
      <li class="r2">2</li>
      <li class="r3">3</li>
      <li class="r4">4</li>
      <li class="r5">5</li>
      <li class="r6">6</li>
    </ul>
</div>

核心是一个ul,li列表,其中6个li通过不同的属性设置分别构成立方体的6个面,然后外围ul沿Y轴旋转,当然你也可以任意设置。

关于transform更多讲解,请看transform应用详解   另外还可参考案例css3+js打造炫酷图片展示

注意,在做立体效果时一定注意在父元素添加transform-style: preserve-3d;属性,字面理解 变换形式,3d透视与平面,当设置为flat时,表示在flat平面变换。

下面主要是css属性设置,

 1 *{margin:0px;padding:0px}
 2 body{background-color:#000}
 3 div{-webkit-perspective:800;-webkit-transform-style: preserve-3d;position:absolute;top:30%;left:50%;}
 4 ul{position:absolute;left:0px;top:0px;-webkit-transform:translate(-50%,-50%);width:200px;height:200px; -webkit-transform-style: preserve-3d }
 5 li{list-style-type:none;position:absolute;top:0px;left:0px;right:0px;bottom:0px;width:200px;height:200px;font-size:100px;text-align:center;line-height:200px;opacity:0.3;-webkit-transition: -webkit-transform 2s, opacity 2s;border:2px solid #C09;box-shadow:1px 1px 10px #C09; -webkit-backface-visibility: visible;color:#fff}
 6 .ani{ -webkit-animation: rotaY 5s infinite linear;}
 7 @-webkit-keyframes rotaY{
 8   from{-webkit-transform:rotateY(0deg) }
 9   to{-webkit-transform:rotateY(-360deg) }
10 }
11 @-webkit-keyframes rotaX{
12   from{-webkit-transform:rotateX(0deg)}
13   to{-webkit-transform:rotateX(-360deg)}
14 }
15 @-webkit-keyframes rotaZ{
16   from{-webkit-transform:rotateZ(0deg)}
17   to{-webkit-transform:rotateZ(-360deg)}
18 }
19
20 .r1{-webkit-transform:translateZ(100px)}
21 .r2{-webkit-transform:rotateY(90deg) translateZ(100px) }
22 .r3{-webkit-transform: rotateY(180deg) translateZ(100px)}
23 .r4{-webkit-transform: rotateY(-90deg)translateZ(100px) }
24 .r5{-webkit-transform: rotateX(90deg) translateZ(100px) }
25 .r6{-webkit-transform:rotateX(-90deg) translateZ(100px) }

有一点就是设置元素的水平垂直居中,absolute,top,left,translate即可方便搞定。

在构建正方体时,我们首先设置各个li元素为绝对定位,在这一步,这6个li元素是相互重合的,第二步设置translateZ与rotateY与rotateX,

可以想象一下,现在旋转中心在整个div的中心,当沿Y轴旋转90度时,这个页面是完全垂直于视平面的,这时候再加translateZ,这样就形成了我们的第一个面,距离中心100px,

其他面都是同样的道理,对于上下两个面则需要采用沿X轴旋转,但是他们距中心的距离是相同的即translateZ,这样分别设置每个元素的旋转方向和变换之后便形成了一个立方体。

如有问题及错误或者更好的解决办法,请联系我。

另自己新建立了一个qq群:85530789,欢迎志同道合的朋友一起多多交流技术。(现在好多技术群基本都聊不了多少真正的技术话题,失望了)

时间: 2024-12-29 11:29:44

css3立体旋转动画的相关文章

css3立体旋转菜单

css3立体旋转菜单,css3,3D,立体旋转,立体菜单,菜单导航,css3立体旋转菜单是一款纯css3实现的三维立体旋转导航菜单. 源码下载页:http://www.huiyi8.com/sc/7127.html css3立体旋转菜单,布布扣,bubuko.com

Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)

本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种: 1. 以X轴为轴心旋转 2. 以Y轴为轴心旋转 3. 以Z轴为轴心旋转--这种等价于android默认自带的旋转动画RotateAnimation 实现立体旋转核心步骤: 1. 继承系统Animation重写applyTransformation方法 通过applyTransformation方法的回调参数 float interpolatedTime, Transformation t 来

利用css3制作旋转动画

利用css3功能强大,我们可以直接完成旋转动画的制作,而跳过复杂的javascript. html代码如下:demo01.html   <!DCTYPE html>       <head>           <meta type="utf-8"/>           <title>旋转动画</title>           <link rel="stylesheet" type="t

css3 3d旋转动画

    <!doctype html> <html> <head> <meta charset="utf-8"> <title>css3 3d动画 keyframes</title> </head> <body> <style>/*************** ANIMATIONS ***************/ @-webkit-keyframes spin { from {

css3制作旋转动画

上代码: 1 <!DOCTYPE html> 2 <html> 3 4 <head lang="en"> 5 <meta charset="UTF-8"> 6 <title></title> 7 8 <style> 9 .out_circle { 10 width: 440px; 11 height: 440px; 12 border: 1px solid; 13 border-ra

CSS3 3D旋转动画代码实例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

CSS3 skew倾斜、rotate旋转动画

css3出现之前.我们实现一个对象的一组连续动画须要通过JavaScript或Jquery编写,脚本代码较为复杂: 若须要实现倾斜.旋转之类的动画难度将更高(我还没试过用JavaScript或Jquery怎样实现),并且即使能实现预计花的时间代价及维护难度是非常大的,非常多时候仅仅能依靠绘图工具制作此类动画文件: 有时候在想假设不用脚本语言,也不用绘图工作制作动画文件.就能在网页上实现倾斜.旋转之类的动画效果多好. 近期挤出一些业余时间学习CSS3,当中就包括非常多动画演示样例,花了点时间学习和

HTML5 CSS3 诱人的实例: 3D立方体旋转动画DEMO

创意来自:http://www.html5tricks.com/demo/html5-3d-cube/index.html , 同学给我发的例子,感觉很不错,不过实在想不出来实际的用处,但是效果很炫~ 效果图: 知识点: 1.perspective ,transform 的复习 2.css3 backgroud实现格格背景,即面上的小格格 3. @-webkit-keyframes 实现动画 HTML: <body> <div class="stage"> &l

css3 移动端旋转动画暂停

音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused; @-webkit-keyframes rotate{ 100% { transform: rotate(1turn); } } .img-wrapper{ width: 200px; height: 200px; margin: 50px auto 0; overflow: hidden; border-radius: 100px; } .animation-start{ animation: