css----动画

1.动画的创建

在css中要使用动画,必须先创建一个预设的动画,规定动画帧的内容。动画播放时,会按照所有设定的关键帧,按顺序播放并且有过渡效果。

@keyframes 动画名字 { 动画帧内容  }

说明:使用@keyframes 关键字,声明一个动画并取名。然后设定0% - 100%或者from{ 初始样式  } to{  结尾样式 }`的动画帧过程的css样式。(一般用百分比的形式会使动画过度更加准确和顺畅)

eg:

声明一个旋转的动画

(1)使用百分比,精确设定每个阶段的样式

@keyframes rolling{
    /* 第一帧 */
    0%{
        width: 100px;
        height: 100px;
        background-color:#123456;
        transform:rotate(0deg);
    }

    /* 中间帧省略 */

    /* 最后一帧 */
    100%{
        width: 200px;
        height: 200px;
        background-color:#654321;
        transform:rotate(360deg);
    }
}

其中中间帧可加入对应的百分比进行过度

(2)使用 from to ,快速设置开始到结束的样式

@keyframes rolling{
    /* 第一帧 */
    from{
        width: 100px;
        height: 100px;
        background-color:#123456;
        transform:rotate(0deg);
    }
    /* 最后一帧*/
    to{
        width: 200px;
        height: 200px;
        background-color:#654321;
        transform:rotate(360deg);
    }
}

2.动画的使用

对应的样式

animation-name:要使用的动画的名字

animation-duration:指定的动画的周期时长(单位:s)

animation-delay:指定的动画延时多久开始(单位:s)

animation-timing-function:指定动画的速率曲线

ease(默认值)     缓慢
ease-in慢入
ease-out慢出
ease-in-out慢出慢入
linear线性(较复杂)

animation-iteration-count:指定动画的播放次数

直接使用数字

        infinite(无限)

animation-direction:指定的动画的播放方向

      

normal(默认值)正向运行动画
reverse反向运行动画
alternate动画交替反向运行
alternate-reverse反向交替,反向开始交替

*animation

快速简写,一次性配置上述所用动画属性

语法顺序:animation:name duration timing-function delay iteration-count direction:

eg:

旋转和位移动画

<style>
    div{
        width:50px;
        height:50px;
        background-color:#123123;
    }
    /* 分部设置 */
    .animate-detail{
        animate-name: rolling;
        animation-duration: 3s;
        animation-timing-function: ease-in-out;
        animation-iteration-count: infinite;
        animation-direction: alternate;
    }
    /* 简写设置 */
    .animate-easy{
        animation: rolling 3s ease-in-out 0 infinite alternate;
    }
    
    @keyframes rolling{
        
        from{
            width: 100px;
            height: 100px;
            background-color:#123456;
            transform:rotate(0deg);
        }
        
        to{
            width: 200px;
            height: 200px;
            background-color:#654321;
            transform:rotate(360deg);
        }
    }
</style>
<body>
    <div class="animate-detail"></div>
    <div class="animate-easy"></div>
</body>

效果如下:

其中动画的变化方式(transfrom变换)

(1)rotate变化(旋转)

rotate()(默认)以z轴旋转
rotateX()以x轴旋转

rotateY()

以y轴旋转
rotateZ()以z轴旋转

负角度代表逆时针旋转(单位:deg)

(2)scale变化(缩放)

scale():

单个参数:在x,y轴同比缩放

双个参数:分别指定在x,y轴倍比缩放

scaleX():在x轴缩放

scaleY():在y轴缩放

(取值范围:0~无限大)(单位i:数字)

(3)translate变化(平移)

以当前元素文档流位置为原点,根据x,y轴移动

translate()

单个参数:指定X轴的移动距离

双个参数:分别指定,X轴,Y轴的移动距离。

translateX():指定X轴的移动距离        

translateY():指定y轴的移动距离

(取值范围:负数~整数)(单位:px %)

ps:其中x轴上默认向右为正方向,y轴上默认向下为正方向。

(4)skew变化(倾斜(趋于菱形))

以当前元素文档流位置为原点,在x,y轴上形变,趋于菱形

skew()

单参:指定在x轴形变

双参:分别指定x轴,y轴形变

skewX():指定在x轴形变

skewY():指定在Y轴形变

(取值范围:负数~整数)(单位:deg)

*变化起点的设置

translate-origin

语法:translate-origin:x轴,y轴

ps:transform变化不会改变原来的文档流,只是视觉上发生了变化。

总结

在学习js之前

可以用动画的形式去形成视觉上的动态审美,加强网页的视觉效果和交互效果

动画的形成主要得益于transform变化


作者寄语

继上次发表至今已有六月之久,如见已学习到ajax的版块,回看之前的种种仿佛昨天发生

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值