栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Html/CSS > CSS教程

CSS3 3D制作实战案例分析

CSS教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一、前言
 
上一节,介绍了基础的CSS3 3D动画原理实现,也举了一个小小的例子来演示,但是有朋友跟我私信说想看看一些关于CSS3 3D的实例,所以在这里为了满足一下大家的需求,同时也为了以后能够更好的巩固CSS3 3D的知识,所以在这里写下这篇博文,希望能够帮助你更好的理解3D的制作和实现原理,同时也欢迎各位小伙伴对文中的错误给予指正 
 
二、入门案例分析
 
这里先说一说我的规划,我打算先从入门级的案例入手,然后依次递推,最后要达到的效果是,理解完所有的例子的设计思路,基本上CSS3-3D制作就能够随心所欲。
 
1、矩形图片翻滚效果
 
这个效果比较简单,所以在这里就不多做解释了,先来复习一下上一节说的要创建一个3D环境,我们需要创建一个“灯光”,“舞台”,“演员”(相当于perspective、preserve-3d、image),不清楚的小伙伴请看这里,具体的代码如下:

XML/HTML Code复制内容到剪贴板
  1.   
  2.   
  3.   
  4.       
  5.     document  
  6.       
  7.         div div img{   
  8.             width:300px;   
  9.             height:300px;   
  10.             position:absolute;   
  11.                
  12.         }   
  13.         div div{   
  14.             -webkit-transition: all 1s;   
  15.         }   
  16.         #img1{   
  17.             -webkit-transform: translateZ(150px);   
  18.                
  19.         }   
  20.         #img2{   
  21.             -webkit-transform: rotateX(-90deg) translateZ(150px);   
  22.                
  23.         }   
  24.         #img3{   
  25.             -webkit-transform: rotateZ(180deg) translateZ(-150px);   
  26.         }   
  27.         #img4{   
  28.             -webkit-transform: rotateX(90deg) translateZ(150px);   
  29.         }   
  30.         #img5{   
  31.             -webkit-transform:rotateY(90deg) translateZ(150px);   
  32.         }   
  33.         #img6{   
  34.             -webkit-transform: rotateY(-90deg) translateZ(150px);   
  35.         }   
  36.            
  37.       
  38.   
  39.   
  40.       
  41.           
  42.             

      
  43.             

      
  44.             

      
  45.             

      
  46.             

      
  47.             

      
  48.         
  
  •     
  •   
  •       
  •           
  •           
  •           
  •           
  •     
  •   
  •       
  •       
  •   
  •     
  •   
  • 分析
     
    虽然这个思路浅显易懂,但是作为本文的第一个例子还是想为大家尽量清晰的分析清楚,
     
    1、首先我们创建了一个“灯光”persepctive用来产生3D变化的效果的
     
    2、然后我们创建了一个“舞台”  transform-style: preserve-3d
     
    3、创建“演员”,这里的演员指的是每张的图片,在创建的时候要根据你最终要呈现的形态进行建模,也即是平移旋转之类的操作
     
    脚本的编写:在编写脚本的时候有一点是需要注意的,当你把图片旋转90度的时候,如果第二次还是设置90度,那么这个图片是不会发生变化的,因为图片的变化(旋转)是以初始位置为基准的,所以相对于初始位置两次的90度都是一样的所以没有任何的效果。这个在制作的时候,留意一下即可
     
    2、矩形自动旋转效果
     
    按照上面的例子进行整改,要实现自动的旋转其实就是定义一个keyframes的运动规则,然后在把这个keyframes套接到animation中,即可实现CSS自动旋转的功能
     
    部分的CSS3代码

    CSS Code复制内容到剪贴板
    1. div div{   
    2.             animation:route 10s infinite ease-in-out;    
    3.         }   
    4. //keyframes运动规则   
    5. @-webkit-keyframes route{   
    6.             0%{   
    7.                 -webkit-transform:rotateX(90deg);   
    8.             }   
    9.             25%{   
    10.                 -webkit-transform:rotateX(180deg) rotateY(90deg) rotateZ(90deg);   
    11.             }   
    12.             50%{   
    13.                 -webkit-transform:rotateX(270deg) rotateY(180deg) rotateZ(180deg);   
    14.             }   
    15.             75%{   
    16.                 -webkit-transform:rotateX(360deg) rotateY(270deg) rotateZ(270deg);   
    17.             }   
    18.         }   

    展示效果:

     三、CSS3 3D使用特效制作与分析
     
     1、模拟卡牌翻转效果
     
    这个我就不多说怎样制作了,先上效果,图片是来源于蜗牛的,如有侵犯请告知

     

    这个虽然是归类到3D的范围内,但是在使用的时候由于不需要产生平行四边形的变换效果(这个的具体效果详见博主的另外一篇博文),所以不需要使用perspective这个属性,但是确实需要使用到CSS3 3D常见效果中的翻转属性(rotate[X,Y,Z]),这个的具体原理也是简单,但是在使用的时候有两点是需要注意的。
     
    一)、因为旋转是相对于卡牌的整体的旋转,也就是两个面都要旋转,所以hover事件要相对于卡牌整体,如果是相对于某一个面的话,那么会出现一个面旋转,而另外一个面不旋转的现象
     
    二)、在制作的过程中使用了一个比较少见的属性:backface-visibility,这个属性是为了见图片的背面设置为不可见,从而达到实现翻转的效果
     
    具体代码见文章最后
     
    2、CSS3 3D轮播
     
    说到CSS3 3D轮播主要我们可以分成这样的三类,一类是自动播放的轮播图,另外一类是响应点击事件的轮播图,第三类是两者的结合,即自动播放又响应点击事件,这里我们主要讨论的是前两者,第三类比较复杂这里我们就不多做解释,以后有机会再来跟大家探讨探讨
     
    2.1 自动轮播图
     
    这个的原理我们已经在前面中多次提到了,但是各位要注意一个地方,在keyframes中设置如:
     
    @keyframes test{
       o%,
       12.5%:{………………}
    }

    这样的一种形式可以实现轮播图的短暂停留。
     
    好了看一下效果了:

    2.2 CSS3触发轮播图
     
    主要的原理是通过判断点击的次数,然后是给图片父类添加旋转的属性,这样这个功能就实现了,我们对上面的例子进行改进,效果如下所示 

    四、代码下载
     
     这一次代码进行了迁移,从原本自己的服务器迁移到了git服务器,git的下载地址:https://github.com/leslieSie/CSS3_example/tree/develop

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

    原文链接:http://www.cnblogs.com/st-leslie/p/5791714.html

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/217724.html

    CSS教程相关栏目本月热门文章

    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号