针对CSS Animation的综合笔记

CSS animation

主要针对 CSS animation 的常用涉及内容进行整理。
参考网站 ,通常会兼容其他浏览器。

一、语法搭配

1、格式内容

1、@keyframes duration | timing-function | delay |
   iteration-count | direction | fill-mode | play-state | name 
animation: 3s ease-in 1s 2 reverse both paused slidein;

2、@keyframes duration | timing-function | delay | name 
animation: 3s linear 1s slidein;

3、@keyframes duration | name 

2、对应参数可选值

参数名称描述
duration(几乎是必选)整个动画过程的时间长度。
timing-function描述整个动画过程的帧之间的动作。
delay延迟时间,默认为0s,如果为负数,则第一秒则到其绝对值的秒数立即开始。
iteration-count循环的次数,infinite 关键字为无限次。
direction动画播放的顺序及其效果预览。
fill-mode填充效果,动画执行前后的渲染时机
play-stateobject.style.animationPlayState=“paused” ,主要用于查询状态,
name也就是对应@keyframes的别名

timing-function

描述整个动画过程的帧之间的动作。

属性值属性描述
ease先缓慢开始,然后快速开始,然后缓慢结束。 cubic-bezier(0.25, 0.1, 0.25, 1.0)
ease-in先缓慢开始,后面稍微加速然后保持匀速到结束。cubic-bezier(0.42, 0, 1.0, 1.0)
ease-out先保持匀速,在尾段开始减速然后保持到结束。cubic-bezier(0, 0, 0.58, 1.0)
ease-in-out开始和结尾都是慢速,中间部分会稍微加速后匀速。cubic-bezier(0.42, 0, 0.58, 1.0)
linear全程保持匀速cubic-bezier(0.0, 0.0, 1.0, 1.0)
stepssteps(n, ),其中n为步骤数,参考timging about steps
cubic-beziercubic-bezier(p1, p2, p3, p4),cubic-bezier 曲线,其中p1,p3必须要0到1内的值。

direction

动画播放的顺序及其效果预览,整体上属于大于1次后见到效果。

属性值属性描述
nomal默认值,每个循环结束后从头开始。
alternate动画交替反向运行,整体受timing-function影响。
reverse与原动画反向运行。
alternate-reverse单纯依次反向运行。

fill-mode

执行之前和之后如何将样式应用于其目标

属性值属性描述
none未执行时将不会渲染内容
forwards动画将在应用于目标时立即应用第一个关键帧中定义的值,不包含delay,到最后一个关键帧截止才渲染最后一个关键帧的内容。
backwards动画将在应用于目标时立即应用第一个关键帧中定义的值,delay期间也是。
both在forwards和backwards之间额度范围内都进行渲染

play-state

document.getElementById(“myDIV”).style.animationPlayState = “paused”;

二、整体步骤

step1:定义一个dom元素,赋予一个可见内容和一个定位属性。
step2:定义一个@keyframes,用于描绘整个动画的起始位置和效果

0、完整内容

<div class="content">
   <div class="animal"></div>
</div>
/* 赋予dom一个动画,语法 @keyframes duration | name */
.animal {
   animation: 3s  rightSlash;
}


@keyframes rightSlash {
   /* 这部分为从左到右一个斜线"\"  */
   0% {
       margin-left: 0%;
   }

   100% {
       margin-left: 100%;
   }

   from {
       top: 10px;
   }

   to {
       top: 200px;
   }
}

/* 基础样式 */
.animal {
   background-color: #1766aa;
   width: 20px;
   height: 20px;
   border-radius: 50%;
   position: relative;
}

1、 定义一个@keyframes (必然)

定义动画的开始到结束的 轨迹 的一个关键配置,所有animation后续引用的name也是指引到这个内容别名上整体上。

主要两种模式 :百分比(Percentage) 和 起终点(animation duration),取值都是0 ~ 100%,值得注意的是,建议在动画元素上增加 position 属性以保证动画轨迹能完全生效。

模式名称描述(除了百分比,还可以增加其他效果)
Percentage从0% 轨迹到100%(并不是一定要求要到100%,大于0%即可)
animation durationFrom 0% to 100%(并不是一定要求要到100%,大于0%即可)

同时其实可以无限叠加两种模式的组合,这样就会出现很多轨迹,谨记,动画是同时生效的,在一个keyframes中。

@keyframes rightSlash {
    /* 这部分为从左到右一个斜线"\"  */
    0% {
        margin-left: 0%;
    }

    100% {
        margin-left: 100%;
    }

    from {
        top: 10px;
    }

    to {
        top: 200px;
    }
}

2、赋予元素内容一个动画内容。

赋予dom一个动画,语法 @keyframes duration | name

.animal {
    animation: 3s  rightSlash;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值