css3 3d变换和动画——回顾

前端开发 作者: 2024-06-14 17:55:01
1.transform-style 属性指定嵌套原始是怎样在三维空间中呈现。 语法:transform-style: flat | preserve-3d flat 表示所有子元素在2D平面呈现。 p

属性指定嵌套原始是怎样在三维空间中呈现。
  语法:transform-style: flat | preserve-3d
      flat 表示所有子元素在2D平面呈现。
      preserve-3d 表示所在元素在3D空间中呈现。
定义3D元素距视图的距离,以像素计,当为元素定义perspective 属性时,其子元素获得透视效果,而不是元素本身
  语法:perspective: number | none;
      number 元素距离视图的距离,以像素计。
      none 默认值,与0 相同,不设置透明。
属性定义3D元素所基于的X轴和Y轴,该属性允许您改变3D 元素的底部位置,定义的这个属性,它是一个元素的子元素,透视图,而不是元素本身。

  语法:perspective-origin: x-axis y-axis
    x-axis 定义该视图在x轴上的位置。
    y-axis 定义该视图在y轴上的位置。

示例:
  
  

     

  

  结果:如图

    

示例:
  
  

    

  

结果:如图

    

示例:
  
  

    

  

结果:如图

    

示例:(正方形)
  
  

    
      @H_403_106@1

      @H_403_106@2

      @H_403_106@3

      @H_403_106@4

      @H_403_106@5

      @H_403_106@6

    

  

结果:如图

  


    Keyframes 具有其自己的语法规则 ,他的命名是由”@keyframes“ 开头,后面紧接着这个动画的名称 加上一堆花括号。
    对于一个"@keyframes"中的样式规则是由多个百分比构成的,如“0%”到"100%"之间
       @keyframes IDENT {
            from {
                Properties:Properties value;
            }
            Percentage {
                Properties:Properties value;
            }
            to {
                Properties:Properties value;
            }
        }
    或者全部写成百分比的形式:
     @keyframes IDENT {
          0% {
           Properties:Properties value;
        }
        Percentage {
          Properties:Properties value;
        }
        100% {
          Properties:Properties value;
        }
      }
    其中IDENT是一个动画名称,你可以随便取,当然语义化一点更好,
      @-webkit-keyframes 'wobble' {
          0% {
            margin-left: 100px;
            background: green;
          }
          40% {
            margin-left: 150px;
            background: orange;
          }
          60% {
            margin-left: 75px;
            background: blue;
          }
          100% {
            margin-left: 100px;
            background: red;
            }
        }
    元素调用animation属性
       如:
          .demo1 {
              width: 50px;
              height: 50px;
              margin-left: 100px;
              background: blue;
              -webkit-animation-name:'wobble';/*动画属性名,也就是我们前面keyframes定义的动画名*/
              -webkit-animation-duration: 10s;/*动画持续时间*/
              -webkit-animation-timing-function: ease-in-out; /*动画频率,和transition-timing-function是一样的*/
              -webkit-animation-delay: 2s;/*动画延迟时间*/
              -webkit-animation-iteration-count: 10;/*定义循环资料,infinite为无限次*/
              -webkit-animation-direction: alternate;/*定义动画方式*/
          }

属性:
1.animation-name:
        语法:animation-name: none | IDENT[,none | IDENT]*;
        animation-name:是用来定义一个动画的名称,其主要有两个值:IDENT是由Keyframes创建的动画名,
        换句话说此处的IDENT要和Keyframes中的IDENT一致,
        如果不一致,将不能实现任何动画效果;none为默认值,当值为none时,将没有任何动画效果。另外我们这
        个属性跟前面所讲的transition一样,我们可以同时附
        几个animation给一个元素,我们只需要用逗号“,”隔开。
2.animation-duratiuon
        语法:animation-duration:

示例: 
  
  


结果:如图

    


示例: 
  
  


结果:动画从头到尾的速度是相同的。

示例:
  
  


结果:如图

  

示例:
  
  

    
           
  • 1

  •        
  • 2

  •        
  • 3

  •        
  • 4

  •        
  • 5

  •        
  • 1

  •        
  • 2

  •        
  • 3

  •        
  • 4

  •        
  • 5

  •     

  

结果:循环运动,鼠标悬浮停止。

 

    语法:animation-play-state: paused | running

          paused 动画已暂停

          running 动画正在播放

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_27050.html