01.transition,transfrom和animation

本文深入探讨CSS中的过渡动画、变换效果及帧动画,包括transition、transform和animation的使用技巧,如平移、旋转、缩放、倾斜及3D效果的实现方法。

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

1. transition过渡动画
第一个值:需要过渡的属性 一般为all
第二个值:动画时间,一定要设置
第三个值:动画速度曲线,一般liner(匀速)
第四个值:延迟,一般不设置`

transition-property: all;
            transition-duration: 1s;
            transition-timing-function: linear;
            transition-delay: 3s; 

2. transform

2d
平移:transform:translate(x,y)

总结:
a. x:水平方向 y、:垂直方向
b.百分比单位相对于元素自身宽高
a.x:水平方向 y :垂直方向
b.百分比单位相对于元素自身宽高
例.transform: translate(100%,50%);

旋转: transform: rotate(deg)
a:只有一个值就是角度。 角度单位是deg
b. 正数:顺时针 负数:逆时针
transform: rotate(-45deg);
修改基准点:transform-origin:方位名词
修改元素基准点
left:左
right:右
bottom:下
top:上
缩放:transform:scale(0.5,3)
a.单位是数字,表示缩放比例
b. 放大: 大于1 缩小: 0 - 1
c. x:宽度缩放 y:高度缩放
d. 一个值表示宽高同时缩放

倾斜:transform: skew(x角度,y角度);
例: transform: skew(45deg,60deg);

  • 3d
    如果某个元素想要显示3d效果,必须要给父元素设置视距属性
    视距:视觉的距离。浏览器用来模拟3d的z轴,相当于电脑屏幕到用户眼睛的距离
    一般范围:600px - 1000px
    规则:近大远小
    perspective: 800px;
    transform: translateX(100px) translateY(100px) translateZ(100px);

3.animation
/*transition动画弊端
a:无法自动执行动画(需要和hover配合)
b:只能一次(无法实现多次)

        步骤: 第一步:写hover样式
              第二步:写transition属性开始动画
    */

    /* animation帧动画
    animation帧动画
        a:自动执行动画
        b.可以多次

        步骤: 第一步:写动画样式
            animation帧动画步骤
        1.写动画运动状态
        @keyframes 动画名字 {
            from{开始样式}
            to{结束样式
            }
    
            @keyframes 动画名字{
                from{
                    开始样式
                }to{
                    结束样式
                }
            }
        2.写animation开始动画

     */
 /* 第一步:写动画样式 */
        @keyframes sb{
            from{/* 从什么状态开始 */
                transform: scale(1);
            }to{/* 结束状态 */
                transform: scale(2);
            }
        }


        .box{
            width: 200px;
            height: 200px;
            background-color: green;
            /* 第二步:通过animation属性开始动画 */
            /* animation-name: sb;
            animation-duration: 1s;
            animation-timing-function: linear; */
            animation: sb 1s linear;
        }
        
        

相同属性写两个,后者覆盖前者
/* transform: scale(2);
transform: translate(800px); */

  • 百分比帧动画
/* 1.写动画样式 */
        @keyframes move{
            /* 百分比写法:相对于动画时间 */
            20%{/* 第一秒状态 */
                transform: translate(100px,100px) scale(0.5);
                opacity: 0.8;
            }
            40%{/* 第二秒状态 */
                transform: translate(200px,100px) scale(0.1);
                opacity: 0.2;
            }
            60%{/* 第三秒状态 */
                transform: translate(200px,300px) scale(0.8);
                opacity: 0.6;
            }
            80%{/* 第四秒状态 */
                transform: translate(50px,50px) scale(1);
                opacity: 0.8;
            }
            100%{/* 第五秒状态 */
                transform: translate(150px,150px) scale(2);
                opacity:1;
            }
        }
    
        .box{
            width: 200px;
            height: 200px;
            background-color: green;
            /* transition: move 5s linear forwards; */
            /* 复合属性写法 */
            animation: move 5s linear forwards;
        }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值