HTML5 CSS3 诱人的实例: 3D立方体旋转动画
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/34120047
创意来自:http://www.html5tricks.com/demo/html5-3d-cube/index.html , 同学给我发的例子,感觉很不错,不过实在想不出来实际的用处,但是效果很炫~
效果图:
知识点:
1、perspective ,transform 的复习
2、css3 backgroud实现格格背景,即面上的小格格
3、 @-webkit-keyframes 实现动画
HTML:
- <body>
- <div class="stage">
- <div class="cube">
- <div class="font"></div>
- <div class="back"></div>
- <div class="left"></div>
- <div class="right"></div>
- <div class="top"></div>
- <div class="bottom"></div>
- </div>
- </div>
- </body>
前面的3D商品展示中已经说过如何制作正方体,并且那个上面还有数字,理论上说比这个复杂,虽然木有这个炫~这里就不多说了。
CSS:
- html
- {
- background: -webkit-radial-gradient(center, ellipse, #430d6d 0%, #000000 100%);
- background: radial-gradient(ellipse at center, #430d6d 0%, #000000 100%);
- height: 100%;
- }
- .stage
- {
- -webkit-perspective: 1000px;
- width: 20em;
- height: 20em;
- left: 50%;
- top: 50%;
- margin-left: -10em;
- margin-top: -10em;
- position: absolute;
- }
- .cube
- {
- position: absolute;
- width: 100%;
- height: 100%;
- -webkit-transform-style: preserve-3d;
- -webkit-transform: rotateX(-20deg) rotateY(-20deg);
- }
- .cube *
- {
- background: -webkit-linear-gradient(left, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px), -webkit-linear-gradient(top, rgba(54, 226, 248, 0.5) 0px, rgba(54, 226, 248, 0.5) 3px, rgba(0, 0, 0, 0) 0px);
- -webkit-background-size: 2.5em 2.5em;
- background-color: rgba(0, 0, 0, 0.5);
- position: absolute;
- width: 100%;
- height: 100%;
- border: 2px solid rgba(54, 226, 248, 0.5);
- -webkit-box-shadow: 0 0 5em rgba(0, 128, 0, 0.4);
- }
- .font
- {
- -webkit-transform: translateZ(10em);
- }
- .back
- {
- -webkit-transform: rotateX(180deg) translateZ(10em);
- }
- .left
- {
- -webkit-transform: rotateY(-90deg) translateZ(10em);
- }
- .right
- {
- -webkit-transform: rotateY(90deg) translateZ(10em);
- }
- .top
- {
- -webkit-transform: rotateX(90deg) translateZ(10em);
- }
- .bottom
- {
- -webkit-transform: rotateX(-90deg) translateZ(10em);
- }
同样:stage作为舞台,cube设置子元素的效果为3d,然后每个面都进行旋转和设置translateZ然后形成立方体。
为每个面设置backgroud设置小格格的代码:
- background: -webkit-linear-gradient(
- left,
- rgba(54, 226, 248, 0.5) 0px,
- rgba(54, 226, 248, 0.5) 3px,
- rgba(0, 0, 0, 0) 0px),
- -webkit-linear-gradient(
- top,
- rgba(54, 226, 248, 0.5) 0px,
- rgba(54, 226, 248, 0.5) 3px,
- rgba(0, 0, 0, 0) 0px);
- -webkit-background-size: 2.5em 2.5em;
背景设置,从左到右的3像素的条条,从上到下的3像素的条条;然后设置背景大小为2.5em 2.5em ,然后将背景重复显示,效果如下(我添加了边框):
现在的完整效果:
可以看到立方体已经成型了,最后添加上动画就行了,不要觉得动画很复杂,其实很简单~
定义一个动画帧:
- @-webkit-keyframes spin
- {
- from
- {
- -webkit-transform: translateZ(-10em) rotateX(0) rotateY(0deg);
- transform: translateZ(-10em) rotateX(0) rotateY(0deg);
- }
- to
- {
- -webkit-transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
- transform: translateZ(-10em) rotateX(360deg) rotateY(360deg);
- }
- }
名字为spin,开始时 translateZ(-10em) rotateX(0) rotateY(0deg); 结束时 : translateZ(-10em) rotateX(360deg) rotateY(360deg); 即同时绕着x,y轴360度旋转。
最后给我们的立方体加上此animation属性:
- .cube
- {
- -webkit-animation: 6s spin linear infinite;
- position: absolute;
- width: 100%;
- height: 100%;
- -webkit-transform-style: preserve-3d;
- -webkit-transform: rotateX(-20deg) rotateY(-20deg);
- }
设置时间为动画时间 6s , 动画 spin , 速度为匀速linear , 无限循环 infinite ;
关于更加细致的参数设置,可以参考w3cSchool~以后我也会写单独介绍CSS3的属性的博客~
好了,最终的效果就已经完成了~
对于原网站的样子,有点细微的差别:
因为它额外给每个面添加了一个径向渐变,那么我们添加上:
- .cube *:before
- {
- display: block;
- background: -webkit-radial-gradient(center, ellipse, rgba(0, 0, 0, 0) 30%, rgba(0, 128, 0, 0.2) 100%);
- background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0) 30%, rgba(0, 128, 0, 0.2) 100%);
- content: '';
- height: 100%;
- width: 100%;
- position: absolute;
- }
利用before这个伪元素,然后设置径向渐变~~现在终于一致了~
版权声明:本文为博主原创文章,未经博主允许不得转载。
HTML5 CSS3 诱人的实例: 3D立方体旋转动画的更多相关文章
- HTML5 CSS3 诱人的实例 : 网页载入进度条的实现,下载进度条等
今天给大家带来一个比較炫的进度条,进度条在一耗时操作上给用户一个比較好的体验,不会让用户认为在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务 ...
- HTML5 CSS3 诱人的实例 :canvas 模拟实现电子彩票刮刮乐
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/34089553 今天给大家带来一个刮刮乐的小例子~基于HTML5 canvas的, ...
- HTML5 CSS3 诱人的实例 : 网页加载进度条的实现,下载进度条等
今天给大家带来一个比较炫的进度条,进度条在一耗时操作上给用户一个比较好的体验,不会让用户觉得在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务 ...
- HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能
一般的视频网站对于用户上传的视频,在用户上传完成后,可以对播放的视频进行截图,然后作为视频的展示图.项目中也可以引入这样的功能给用户一种不错的体验,而不是让用户额外上传一张展示图. 效果图: 看起来还 ...
- jquery和CSS3带倒影的3D万花筒旋转动画特效效果演示
<!DOCTYPE html> <html> <head> <title></title> <meta charset='utf-8' ...
- 3D立方体旋转动画
在线演示 本地下载
- 基于css3的3D立方体旋转特效
今天给大家分享一款基于css3的3D立方体旋转特效.这款特效适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器.效果图如下 : ...
- 基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
基于css3新属性transform,实现3d立方体的旋转 通过原生JS,点击事件,鼠标按下.鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示 实现原理:通过获取鼠 ...
- css3-实现3D立方体旋转
核心内容: 1.CSS3 中 animation.perspective 属性的熟练运用. 2.CSS3 中的变形属性 transform,在 3D 立体效果中的运用. 3.3D 立方体旋转实现原理. ...
随机推荐
- 苹果新的编程语言 Swift 语言进阶(四)--字符串和收集类型
一.字符串( String )和字符类型(Character) 字符串是一种字符的带次序的收集类型(相当于数组),字符是字符串中的元素. 在Swift 语言中,字符串是编码独立的Unicode字符的 ...
- python实现博客自动刷点击脚本
#A Auto-Visit Web Site Tool import urllib import time import random print "Auto Click the WebPa ...
- webpack安装使用
一.安装 1.安装node.js,Webpack 需要 Node.js v0.6 以上支持 2.使用npm(软件包管理 )安装webpack (1)全局安装 npm install webpac ...
- 设置eclipse全局编码格式
window--preference--general--workspace--text file encoding
- 基于Django的独立运行脚本开发
1.在Django框架下工作时间长了,会对Django的技术设施产生依赖,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,djang ...
- 选择Web框架的20条标准
原文观点由Matt Raible提出,关于Matt Rabile的介绍:http://www.infoq.com/cn/author/Matt-Raible 内容摘自<Java程序员修炼之道&g ...
- Java杂记9—NIO
前言 非阻塞IO,也被称之为新IO,它重新定义了一些概念. 缓冲buffer 通道 channel 通道选择器 BIO 阻塞IO,几乎所有的java程序员都会的字节流,字符流,输入流,输出流等分类就是 ...
- java基础语法3
逻辑运算符 &:与,和有共同的,必须条件都满足才是true 有false就返回false,必须都是true才返回true |:或者,其中有一个满足条件就返回true ^亦或,相同是false, ...
- 记一次webpack打包优化
未进行打包优化的痛点: 随着项目的不断扩大,引入的第三方库会越来越多,我们每次build的时候会对所有的文件进行打包,耗时必定很长,不利于日常开发. 解决思路: 第三方库我们只是引入到项目里来,一般不 ...
- 微信小程序-获取经纬度
微信小程序-获取经纬度 最近公司新功能 要求在外的市场人员 发送位置信息回来. 用的还是微信小程序开发.... 微信小程序 提供一个接口 getLocation 这个接口反回来的位置 相对实际位置 相 ...