css3动画

css3动画特效

一、transform(转换动画、直接动画)

1.rotate(旋转)
  • 包含三种状态,x、y、z三轴的变化
  • rotatexrotateyrotatez(默认)
  • 旋转(rotate)实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>rotate</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            margin:15% auto;
            transform: rotate(45deg);
        }
        /*动画写在主样式里,页面加载完成之后就执行*/
    </style>
</head>
<body>
    <div class="block"></div>
</body>
</html>

rotate实例

2.translate(平移)
  • 包含三种状态,x、y、z三轴的变化
  • translatex(默认)、translateytranslatez
  • 平移(translate)实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>translate</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            transform: translate(100px);
        }
        /*动画写在主样式里,页面加载完成之后就执行*/
    </style>
</head>
<body>
<div class="block"></div>
</body>
</html>

translate实例

3.skew(变形)
  • 包含两种状态,x和y的变化
  • skewx(默认)、skewy
  • 变形(skew)实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>skew</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            margin:15% auto;
            transform: skew(30deg);
        }
        /*动画写在主样式里,页面加载完成之后就执行*/
    </style>
</head>
<body>
<div class="block"></div>
</body>
</html>

这里写图片描述

4.scale(伸缩比例)
  • scale两个参数时,分别是宽度和高度的比例
  • scale一个参数时,是等比例缩放
  • 伸缩比例(scale)实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>scale</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            margin:15% auto;
            transform: scale(2);
        }
        /*动画写在主样式里,页面加载完成之后就执行*/
    </style>
</head>
<body>
<div class="block"></div>
</body>
</html>

scale实例

transform相关补充:
  • transform-orgin:2d,3d转换中心的设置
  • transform-style:preserve-3d;2d转化为3d动画

二、transition(过渡动画)

1.transition相关补充
  • transition-property过渡的属性
  • transition-delay延迟时间
  • transition-duration动画过渡时间
  • transition-timing-function过渡效果的时间曲线:linear(匀速)、ease(慢-快-慢)、ease-in(开始慢)、ease-out(结束慢)、ease-in-out(开始、结束慢)
2.示例
  • 实例1
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transition</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            transition: all 3s linear;
        }
        /*transition:过渡的属性 过渡时间 延迟时间 效果曲线*/
        .block:hover{
            height:300px;
        }
    </style>
</head>
<body>
    <div class="block"></div>
</body>
</html>

在这里插入图片描述

  • 实例2
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>transition</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            transition: all 3s linear;
        }
        .block:hover{
            height:300px;
            width:300px;
            transform: rotate(180deg);
        }
    </style>
</head>
<body>
    <div class="block"></div>
</body>
</html>

在这里插入图片描述

三、animation(帧动画)

  • 当在@keyframe创建动画,把它绑定到一个选择器
1.animation相关补充
  • animation-name规定 @keyframes 动画的名称
  • animation-duration执行动画所需时间。默认是0
  • animation-timing-function 规定动画的速度曲线 。默认是ease
  • animation-delay 延迟时间。默认时0
  • animation-iteration-count 规定动画被播放的次数。默认是 1
  • animation-direction 规定动画是否在下一周期逆向地播放。默认是 “normal”。 :normal(正常)、reverse(动画反向播放)、alternate(奇数时正向播放,偶数时反向播放)、alternate-reverse(奇数时反向播放,偶数式正向播放)
2.示例
  • 实例1:弹球动画
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>弹球动画</title>
    <style>
        .block{
            width:100px;
            height:100px;
            border-radius: 50%;
            background: linear-gradient(180deg,pink,deepskyblue);
            margin: 0 auto;
            animation: tanqiu 2s ease-in infinite alternate;
        }
        /*animation:自定义名称 动画执行时间 速度曲线 执行次数 逆向播放方法*/
        @keyframes tanqiu {
        /*写法1.将动画时间进行时间段划分,分别规定动画效果*/
            10%{
                margin-top:600px;}
            40%{
                margin-top:300px;
            }
            50%{
                margin-top:600px;
            }
            60%{
                margin-top:450px;
            }
            70%{
                margin-top:600px;
            }
            80%{
                margin-top:550px;
            }
            90%{
                margin-top:600px;
            }
        }
    </style>
</head>
<body>
    <div class="block"></div>
</body>
</html>

在这里插入图片描述

  • 实例2
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>animation</title>
    <style>
        .block{
            width:100px;
            height:100px;
            background-color: aqua;
            margin:15% auto;
            animation:fromto 1s linear infinite alternate;
        }
        /*animation:自定义名称 动画执行时间 速度曲线 执行次数 逆向播放方法*/
        @keyframes fromto {
        /*写法2.直接规定开始和结束的状态*/
            from{
                transform: scale(1);}
            to{
                transform:scale(1.3);}
        }
    </style>
</head>
<body>
    <div class="block"></div>
</body>
</html>

在这里插入图片描述

  • 17
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值