2D形变和过渡动画

2D形变

2D形变包含的内容:平移,旋转,缩放,倾斜(拉伸)

注意:1. 行元素不能形变,img 和 input 除外

           2. 仅仅是元素形状的变化,文档流的空间并没有变化

           3. 形变不会影响整体布局,类似于定位布局( relative ),也就是说,设置他之后,元素不会变成脱离文档流(不会按照块,行级格式上下文的规定去布局盒子,而是元素不再占据默认分配的空间,他下面的元素会上去补位)

           4. 形变的层级,后来者居上

设置形变,使用  transform  属性

  /* input 设置2D形变 */
.txt{
            width: 120px;
            height: 30px;
            border: 2px #ccc solid;
            transition: all 1s;
            outline: none;
        }
        .txt:focus{
            width: 200px;
            height: 50px;
            border-color: #f60;
        }

body{
        <input type="text" class="txt" placeholder="请输入内容">
}

设置形变的参考点

        元素形变的中心原点

        使用  transform-origin  属性,设置形变的参考点,默认值是center  center

        transform-origin:x轴方向的位置   y轴方向的位置;

        值: 1.  具体的数值

                2. left  top  right  bottom  center  等方位名词组合,如果只写一个词,则另一个默认为  center

a521cd628c3d4048bbe46aa2beb6ca37.png

 

1. 平移  translate

65e24cb8915643379cc848c05efaae0b.gif

设置平移, transform: translate(10px,100px);

        a. 水平方向平移

              translateX (num),num是具体的数值,正数向右平移,负数向左平移

        b.  垂直方向平移

              translateY (num),num是具体的数值,正数向下平移,负数向上平移

         c.  复合写法      translate(x,y)

2. 缩放  scale

34f68159b5df425b8ff25cf8ce7acb89.gif

设置缩放,transform: scale(2,3);

        缩放  scale ( x轴方向的倍数,y轴方向的倍数 )

        如果 x轴和y轴缩放的倍数相同,可以只写一个   scale (n)

        如果需要把形变组合在一起

        transform: scale(2)  rotate(180deg)  translate(30px,50px);

如果同时设置 平移和缩放,则有两种写法

        1.先写平移,再缩放,他的结果是 先平移到具体位置,然后在该位置上执行缩放

        2.先写缩放,再平移,它的结果是 先把所有的值进行缩放,然后按照缩放后的值平移

        一般都用第一种写法

3. 旋转  rotate

6b21ed1d3e4748fba0e101626a46e655.gif

设置旋转,transform: rotate(360deg);

        旋转  rotate(度数),度数的单位是  deg,度数为正 顺时针旋转,度数为负 逆时针旋转

 

4. 倾斜(拉伸)  skew

设置倾斜  transform: skew(45deg,0deg)

                写法和  translate  一样,分为x轴倾斜,y轴倾斜和复合写法

                合写:skew(n+deg)  元素倾斜,就是元素和 y轴的夹角为  n度

                x轴度数为正,向左倾斜

                x轴度数为负,向右倾斜    y轴同理

                度数不能是90度,使用复合写法,他们的和 不能是90度

 


过渡动画

过渡动画,设置元素从一种状态达到另一种状态的动画效果

属性:transition

 .trans{
            width: 100px;
            height: 100px;
            background: #04be04;
            margin-top: 50px;
            /* 设置过渡动画绑定的css属性 */
            transition-property:width,height,margin-top,background;
            /* 设置过渡动画的持续时间 */
            transition-duration: 1s;
            /* 设置过渡动画的延迟时间 */
            transition-delay: 0s;
            /* 设置动画的变化曲线 */
            transition-timing-function: ease;
        }
        /* 通过 hover 触发过渡动画 */
        .trans:hover{
            width: 400px;
            height: 200px;
            margin-top: 10px;
            background: #f00;
        }

1. 设置过渡动画绑定的css属性   

        transition-porperty  设置需要过渡的css属性,如果有多个属性需要过渡,则用英文逗号分开

        也可以设置  all,表示所有变化的css属性都需要过渡,如果不设置该属性,默认为 all,transition: all 2s;         

2. 设置过渡动画的持续时间

        transition-duration  设置过渡动画的持续时间,单位是  s (秒)

3. 设置过渡动画的延迟时间

        transition-delay: 0s;

        transition-delay  设置过渡动画的延迟时间,动画开始的时候有延迟,结束的时候也有延迟

4. 设置动画的变化曲线

 transition-timing-function: ease;

 transition-timing-function 设置动画的变化曲线

          ease , 默认值,先快后慢

          ease-in,淡入效果,先快后慢

          ease-out,淡出效果,先匀速,再快,后慢

          ease-in-out  淡入淡出,两边慢,中间快

          linear  匀速运动

以上均属于贝塞尔曲线中的特殊曲线

过渡动画也可以合写:

            transition: porperty duration timing-function delay;

            后面两个可以省略,直接设置默认值

5. 过渡动画的触发时机

触发方式:

        1. 通过伪类触发,hover  focus  targeted

        2. 媒体查询

        3. 通过 js触发

e60c552c3cb74523a41d3f7654a642cc.png

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值