transition的使用方法

目录

css过渡

transition 的子属性

代码

一个先慢后快再慢的代码


css过渡

        css的过渡就是平滑的改变一个元素的css值,使元素从一个样式逐渐过渡到另外一个样式(我认为说白了就是动画)。

        要想实现这样的效果必须规定如下两个内容:

        1.规定应用过渡的css属性名称。

        2.规定过渡效果的时长。

        css的过渡使用transition属性来定义,transition属性的基础语法如下:

       transition: property duration timing-function delay;

        transition 属性可以实现简单的动画效果,但是如果想要实现更加复杂的动画效果,可以使用css3中的animation和@keyframes。

transition 的子属性

       

        property,规定应用过渡的css属性的名称。允许的取值有三种:

                1.none,没有属性会获得过渡效果。

                2.all,默认值,所有的属性都会获得过渡效果。

                3.property,定义应用过渡效果的css属性名称列表。

        duration,定义过渡效果花费时间,允许的取值有一种

                1.time值,以秒或毫秒计,默认是0,意味着没有效果。

        timing-function,规定过渡效果的时间曲线,允许取值有6种

                1.linear,规定相同的速度开始至结束的过渡效果。相当于cubic-bezier(0,0,1,1)

                2.ease,是默认值,规定慢速开始,然后变快,然后慢速结束的过渡效果。相当于cubic-bezier(0.25,0.1,0.25,1)

                3.ease-in,规定以慢速开始的过渡效果。相当于cubic-bezier(0.42,0,1,1)

                4.ease-out,规定以慢速结束的过渡兄啊过,相当于cubic-bezier(0,0,0.58,1)

                5.ease-in-out,规定以满树开始和结束,相当于cubic-bezier(0.42,0,0.58,1)

                6.cubic-bezier(x1,y1,x2,y2),数值是自己定义的(我会在后面一点说一下)。

        delay,规定效果开始前需要等待的时间,允许取值有一种

                1.time值,以秒或者毫秒计,默认是0。

cubic-bezier如何使用

        这个函数中的x1和y2可以看成一个点,剩下的一个是另外一个点,然后将一条曲线向最近的点弯曲。然后k值就是速度。

        第一个图是先慢后快,第二 个图是先快后慢。

代码

        这是一个最基本的,其实transition的all都可以省去,这一个transition的目标是all,所以后面有改变的都会有一个变化的动画,比如width,height,background,其他的也是差不多的了。

这里面的property,timing-function的位置可以任意交换,但是duration和delay的位置都是先duration在delay前面。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .yi{
            width: 200px;
            height: 200px;
            background: gray;
            margin: auto;
            transition: all 1s;
        }
        .yi:hover{
            width: 500px;
            height: 500px;
            background: gainsboro
        }
    </style>
</head>
<body>
<div class="yi">

</div>
</body>
</html>

一个先慢后快再慢的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .yi{
            width: 200px;
            height: 200px;
            background: gray;
            margin: auto;
            transition:  2s  all cubic-bezier(1,0,0,1);
        }
        .yi:hover{
            width: 500px;
            height: 500px;
            background: gainsboro
        }
    </style>
</head>
<body>
<div class="yi">

</div>
</body>
</html>

                

        

        

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值