渐变+动画

264 阅读3分钟

渐变

渐变指的是颜色的渐变,从一个颜色慢慢过渡到另一个颜色。渐变分两种,一种是沿着一条直线发生渐变,另一种围绕一个圆心发生渐变。

线性渐变

语法:


background-image: linear-gradient(to 上/下/左/右, 颜色, 颜色, ....); /* 方向可以是左上,右下。。。也可以是一个角度deg,方向是可选项 */
background-image: repeating-linear-gradient(to 上/下/左/右, 颜色 百分比, 颜色 百分比, ....); /* 表示0~20%,20%~40% .. 其余不满100%的重复渐变 */

径向渐变


background-image: radial-gradient(颜色, 颜色); /* 默认圆心为div中心,默认形状为椭圆 */
background-image: radial-gradient(形状, 颜色, 颜色); /* circle表示圆形,ellipse表示椭圆 */
background-image: radial-gradient(at x y, 颜色, 颜色); /* x和y是圆心的x和y */
background-image: radial-gradient(形状 at x y, 颜色, 颜色); /* x和y是圆心的x和y */
background-image: radial-gradient(范围 形状 at x y, 颜色, 颜色); /* 大小用几个关键字表示 */
/* 
    最近的边作为大小:closest-side
    最近的角:closest-corner
    最远的边:farthest-side
    最远的角:farthest-corner
*/
background-image: repeating-radial-gradient(颜色 百分比, 颜色 百分比); /* 默认圆心为div中心,默认形状为椭圆 */

动画

过渡效果只能模拟动画,无法实现复杂动画。所以css提供了专门用于设置复杂动画的属性:animation。animation动画可以是通过控制关键帧来实现动画的,关键帧指的是,一个动画由多个关键步骤组成,动画中的每个关键步骤称之为关键帧。animation实现的动画其实也就是元素的样式从一个状态变化为另一个状态,每一个状态就是关键帧,每个关键帧之间都自带过渡效果。 语法:

\定义动画语法:


@keyframes 动画名称{
    /* 元素初始状态 */
    from{ /* from也可以写为0% */
        /* 元素第一个关键帧样式 */
    }
    /* 动画执行到某个比例 - 关键帧 */
    percent{ /* 中间的percent,指的是动画执行到某个百分比,例如50%,可以写多个关键帧 */
        /* 某个关键帧的的样式 */
    }
    /* 动画结束的样式 */
    to{ /* to也可以写为100% */
        /* 最后一个关键帧样式 */
    }
}

使用动画:


animation: 动画名称 动画需要的时长 速度方式 延迟时间 infinite/次数 是否反向运动 动画结束是否停留在结束位置; /* 复合写法 */
/* 单一写法 */
animation-name: 定义好的动画名称;
animation-duration: 动画所需的时长; /* 单位可以是s秒,也可以是ms毫秒 -- 1s = 1000ms */
animation-timing-function: 速度方式;
animation-delay: 延迟的时间;
animation-iteration-count: 播放次数(数字)或infinite(无限次);
animation-direction: normal/alternate; /* normal表示正向播放,alternate表示第一次正向播放,第二次就是反向播放,第三次又是正向播放 */
animation-fill-mode: forwards/none; /* 动画停在最后一帧或开始位置 */
animation-play-state: paused/running; /* 规定动画正在运行或暂停,默认为running */