css3动画与变形

一、关键帧动画
    animation 属性
    两个关键:调用动画,定义关键帧
    1,关键帧定义语法
        @keyframes name{
            from{
                width:100px;
            }to{
                width:200px;
            }
        }
        @keyframes name{
            0%{
                width:100px;
            }
            10%{
                width:120px;
            }
            20%{
                width:150px;
            }
            80%{
                width:180px;
            }
            100%{
                width:200px;
            }
        }
        根据浏览器的不同,加不同的前缀:
            @-webkit-keyframes name{} 谷歌
            @-moz-keyframes name{} 火狐
            @-ms-keyframes name{} ie
            @-o-keyframes name{} 欧朋
            @keyframes name{} w3c
    2,调用
        animation: name 1s linear 0s infinite alternate forwards paused;
        参数1:-webkit-animation-name:'name'
            调用动画的名称
        参数2:-webkit-animation-duration:1s;
            动画持续的时间
        参数3:-webkit-animation-timing-function:linear;
            动画运行轨迹
            linear  匀速
            ease-in  低俗开始
            ease-out  低速结束
            ease 低速 加速 减速
            ease-in-out  低速开始,低速结束
            cubic-bezier(a,b,c,d)  贝塞尔
        参数4:-webkit-animation-delay:1s;
            动画延迟时间,0s是不延迟,动画只有第一次会延迟
        参数5:-webkit-animation-iteration-count:10;
            动画循环次数,整数,infinite无限循环
        参数6:-webkit-animation-direction:normal;
            动画播放方式
            normal  正常播放
            reverse  反向播放
            alternate  往返播放
            alternate-reverse 往返反向播放
            initial  默认值
            inherit 从父元素继承
        参数7:-webkit-animation-fill-mode:forwards;
            动画执行结束时的样式
            none  动画执行结束不用然后样式到达目的地,返回原来样式
            forwards 动画结束展示结束时的样式
            backwards  动画结束瞬间回到原始样式
            both  遵循forwards和backwards的规则,在两个方向上扩展动画属性
            总结:
                none和backwar  都会返回
                forwards和both 都会停在最后一针
        参数8:-webkit-animation-play-state:paused;
            都会播放状态
            paused: 暂停
            running:动画正在播放(默认)
            js控制动画播放:
                box.style.WebkitAnimationPlayState='paused';
    3,transition &animation 对比
        t:对元素的某个或多个属性变化进行过渡,只有开始结束,需要触发,不能使用js对其控制,只能执行一次
        a:对元素一个或多个属性变化进行控制,可以设置多个关键帧,不需要触发可以直接执行,可以通过js进行精准控制,可以无限循环播放
二、兼容性策略
    1,平稳退化
        对于老版本浏览器,不考虑效果,只要能展示内容即可,平稳退化就是逐渐的放弃老版本浏览器
    2,渐进增强
        对于低版本浏览器给予普通的功能,增强高端浏览器的功能和效果,渐进增强就是渐渐的放弃老版本浏览器
    3,破罐子破摔
        直接禁止老版本浏览器
        <!-- -->
        <!--[if lte IE 8]>
            <script>
                window.open='error.html';
                console.log('您的浏览器版本过低');
            </script>
        <![endif] -->
        html5新标签: header footer section aside main.....
        但是ie678是不支持的,有大牛写了一个兼容性文件叫做:html5shiv.js,能够将新标签转换为div展示
三、2D变形
    css3中有三大功能:
        1)过渡  transition
        2)动画  animation
        3)变形  transform  ie9兼容
    1,旋转变形
        语法:
            transform:rotate(30deg);
        rotate:旋转
        deg:角度单位,一圈是360度,360deg
        eg  弧度=角度 * π/180
        1弧度=π=180度
        正方向:垂直向上为0度,顺时针方向  (水平向左为90度)
        旋转角度: +-
            transform:rotate(90deg)==>transform:rotate(-270deg)
        任何变形都可以被过渡
    2,缩放变形
        语法:
            transform:scale(1.3);//0.3
        scale:缩放,正数,放大大于1,缩小小于1
        scale(1.2,0.5);
            参数1:横向放大1.2倍
            参数2:纵向缩小0.5倍
        transform:scaleX(1.2) scaleY(0.5);
    3,扭曲变形
        语法:
            transform:skew(30deg,,60deg)
        skew:歪斜扭曲,两个值分别是横向扭曲角度和纵向扭曲角度
        transform:skewX(30deg) skewY(60deg);
    总结: 2D变形有三种:旋转缩放扭曲
        transform:rotate(30deg) scale(2,0.4) skew(20deg,30deg);
四、3D变形
    1,舞台与演员
        ie10开始兼容的
        3D变形与2D变形其实上多了一个舞台的概念,舞台的作用是负责添加景深(perspective),单位是px,表示你的眼睛距离这个舞台的距离,也可以理解为3D变形元素的陡峭程度,演员就是其中变形的元素,使用transform进行变形
    2,rotateX(ndeg)
        绕着X轴翻转
        n为正数:向后仰
        n为负数:向前爬
    3,rotateY(ndeg)
        绕着Y轴转圈
        n为正数:向右转 (旁观者)
        n为负数:向左转 (旁观者)
    4,rotateZ(ndeg)
        绕着Z轴旋转
        Z轴:位于X轴与Y轴的交叉点,方向垂直变形元素所在的平面,正方向是该平面正对的方向
        n为正:顺时针
        n为负:逆时针
    5,rotate3d(a,b,c,n)
        a,b,c 0|1|-1
        a:X轴,0:x轴不旋转,1:x轴向后翻转,-1:x轴向前翻转
        b:Y轴,0:y轴不旋转,1:y轴向右翻转,-1:y轴向左翻转
        a:Z轴,0:z轴不旋转,1:z轴顺时针翻转,-1:z轴逆时针翻转
        a:角度
        rotate3d(1,0,0,30deg)
    6,背面可见设置
        backface-visibility:hidden;
        背面默认是可见的,这个属性决定了一个元素翻转180度后背面是否展示
    7,旋转轴位置设置
        语法:
             -origin:10px 10%;
        参数1:控制Y轴的位置,从左到右10px的位置
        参数2:控制X轴的位置,从上到下10%的位置
        百分比:变形元素的百分之几
    8,移动,位移
        2D位移:
            transform:translate(50px,50px);
                参数1:控制X轴方向移动
                参数2:控制Y轴方向移动
        3D位移:
            transform:translateX(50px);
            transform:translateY(50px);
            transform:translateZ(50px);
            transform:translate3d(50px);
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值