CSS过渡-Transitions

本文详细介绍了CSS Transitions的三大要素,包括属性变化、过渡对象和持续时间,并列举了四种实例应用,如时间曲线动画、文字放大、手风琴效果和米兔过渡。通过实例展示了如何设置transition-property、transition-duration、transition-timing-function和transition-delay,以及各种触发方式如:hover、:active、:focus。文章强调了触发动作中属性变化的重要性,同时提醒在实际应用中注意元素尺寸变化的比例保持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

过渡三要素

过渡触发

属性:

实例运用:

1.过渡时间曲线动画

2.文字放大效果

3.手风琴

4. 米兔过渡


CSS transitions 可以决定哪些属性发生动画效果 (明确地列出这些属性),何时开始 (设置 delay),持续多久 (设置 duration) 以及如何动画 (定义timing function,比如匀速地或先快后慢)。

过渡三要素

过渡三要素:1.必须属性变化   2.有过渡对象   3.持续多长

过渡触发

        1、:hover 鼠标悬停触发
        2、:active 用户单击元素并按住鼠标时触发
        3、:focus 获得焦点时触发
        4、@media触发 符合媒体查询条件时触发
        5、点击事件 用户点击元素时触发

属性:

transition-property:   

                                     规定应用过渡的 CSS 属性的名称
                                     none  没有属性会获得过渡效果
                                      all  所有属性
                                      property  定义应用过渡效果的 CSS 属性名称列表,列表以逗号分隔

transition-duration:   

                定义过渡效果花费的时间。默认是 0。默认就是没有效果

transition-timing-function

             规定过渡效果的时间曲线。默认是 "ease"。
            linear  匀速(等于 cubic-bezier(0,0,1,1))。
            ease        慢速-变快-慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
            ease-in     慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))
            ease-out    慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
            ease-in-out 慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
            cubic-bezier(n,n,n,n)   在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

transition-delay  

                 规定过渡效果何时开始。默认是 0---延迟时间,建议用秒
       速写:
                transition: 过渡属性 过渡时长 运动速度 延迟时间;
                eg:transition: width 5s linear 0s,background-color 5s linear 0s;
                连写可以省略后两个参数,因为前两个写了就满足过渡三要素了

注意:
    a.触发动作里面要指定属性变化的结果
    b.当从本地拿一个图片时只需要设置宽即可,高可以自己适应比例,如果设置了高,后期设计到变形就不会等比例缩小或者扩大

实例运用:

1.过渡时间曲线动画

先上个效果图:

 代码:

<body>
    <!-- 速写 ul>li*5 -->
    <ul>
        <li>linear</li>
        <li>ease</li>
        <li>ease-in</li>
        <li>ease-out</li>
        <li>ease-in-out</li>
    </ul>

</body>


<style>
    *{
        margin: 0;
        padding: 0;
        /* 列表样式:无(即去掉li前面的小圆点) */
        list-style: none;
    }
    ul{
        width: 500px;
        height: 500px;
        border: 1px solid;
        /* 让整个在视口区居中 */
        margin: 40px auto;
    }
    ul li{
        width: 100px;
        height: 50px;
        margin-top: 45px;
        background-color: aqua;
    }

    /* 给内存li全部设置了 移入ul  li向右游动 */
    ul:hover li{
        margin-left: 500px;
    }
    /* 匀速变化 */
    ul li:first-child{
        transition: margin-left 4s linear;
    }
    /* 慢快慢 */
    ul li:nth-child(2){
        transition: margin-left 4s ease;
    }
    /* 慢--加快---结束 */
    ul li:nth-child(3){
        transition: margin-left 4s ease-in;
    }
    /* 慢结束 */
    ul li:nth-child(4){
        /* background-color: red; */
        transition: margin-left 4s ease-out;
    }
    /* 慢速开始,慢速结束,中间较快 */
    ul li:last-child{
        transition: margin-left 4s ease-in-out;
    }
</style>

2.文字放大效果

先上个效果图:

<body>
    <div>
        <span>玛</span>
        <span>咔</span>
        <span>吧</span>
        <span>咔</span>
    </div>
</body>


<style>
    div{
        height: 200px;
        background-color: red;
        margin-top: 100px;
        text-align: center;
        
    }
    div span{
        /* 垂直居中  内层元素行高=外层元素height */
        line-height: 200px;
        font-size: 32px;
        transition: font-size 2s linear;
    }
    div:hover span{
        font-size: 90px;
    }
</style> 

3.手风琴

效果图:

<body>
    <ul>
        <li><img src="./images/ad7.jpeg" alt=""></li>
        <li><img src="./images/ad8.jpg" alt=""></li>
        <li><img src="./images/ad9.jpeg" alt=""></li>
        <li><img src="./images/ad10.jpg" alt=""></li>
        <li><img src="./images/ad11.jpg" alt=""></li>
        <li><img src="./images/ad12.jpg" alt=""></li>
    </ul>
</body>


<style>
    *{
        margin: 0;
        padding: 0;
        list-style: none;
    }
    ul{
        width: 920px;
        height: 300px;
        border: 1px solid;
        margin: 500px auto;
        overflow: hidden;
        /* display: flex; */
        
    }
    ul li{
        width: 150px;
        height: 300px;
        /* 清洁浮动 */
        float: left;
        transition: width 0.5s ;
    }
    /* html文档执行顺序是自上而下的 */
    ul:hover li{
        width: 100px;
    }
    /*鼠标移动  图片变为400px */
   ul li:hover{
        width: 400px;
    }
</style>

4. 米兔过渡

效果图:

<body>
    <div class="box1"></div>
</body>


<style>
    .box1{
        /* 先给一只兔子的宽高 */
        width: 100px;
        height: 200px;
        background-image: url(./images/兔子.png);
        /* 居中 */
        margin:0 auto;
        /* 设置背景图像的起始位置。 */
        background-position: 0 0;
        transition: 1s steps(3);
    }
    .box1:hover{
        background-position: -300px 0;
    }
</style>

重要的事: 学以致用!学以致用!学以致用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值