css3动画基础详解(@keyframes和animation)

动画是使元素从一种样式逐渐变化为另外一种效果,CSS3动画的生成,主要依赖@keyframes定义动画,animation执行动画。

@keyframes

通过 @keyframes 规则创建动画。

@keyframes keyframes-name {keyframes-selector {css-styles;}}
keyframes-name 帧列表的名称。 名称必须符合 CSS 语法中对标识符的定义。
keyframes-selector 动画时长的百分比。合法值:
0-100%
from 等效于 0%
to 等效于 100%
css-styles 需要改变的css样式,支持多属性

animation

animation 是一个简写的属性,用于设置6个动画属性:

  • animation-name:这个就是使用@keyframes定义的动画名称;
  • animation-duration:动画执行的时间,以秒为单位
  • animation-delay:规定动画开始之前的延迟
  • animation-iteration-count:规定动画应该播放的次数,n(次数) | infinite(无限次)
  • animation-direction:规定是否应该轮流反向播放动画
  • animation-timing-function:规定动画的速度曲线
@keyframes changeSize {0% {transform: scale(0.8);            }50% {transform: scale(1.2);            }100% {transform: scale(0.8);            }
}.demo {animation-name: changeSize;animation-duration: 2s;animation-iteration-count:infinite;
}
animation-timing-function

这里说下复杂属性,第一个是animation-timing-function规定动画速度的曲线

说明
ease默认,低速开始,然后加快,结束前变慢
linear从头到尾速度相同
ease-in以低速度开始,先慢后快
ease-out以低速结束,先快后慢
ease-in-out以低速开始和结束
cubic-bezier(x1,y1,x2,y2)在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。

cubic-bezier:三次赛贝尔曲线函数,前面的几个预设函数都可以通过它来实现。 通过控制曲线上的四个点(起始点(0,0)、终止点(1,1)以及两个相互分离的中间点)来绘制一条曲线并以曲线的状态来反映动画过程中速度的变化。可以访问 cubic-bezier.com 来设置对应的值。

ease 的效果等同于 cubic-bezier(.25,.01,.25,1)

linear 的效果等同于 cubic-bezier(0,0,1,1)

ease-in 的效果等同于 cubic-bezier(.42,0,1,1)

ease-out 的效果等同于 cubic-bezier(0,0,.58,1)

ease-in-out 的效果等同于 cubic-bezier(.42,0,.58,1)

@keyframes dropdown {0% {top: 0px;}100% {top: 420px;}
}ul li{&:first-child{animation: dropdown 6s ease infinite;}&:nth-child(2){animation: dropdown 6s linear infinite;}&:nth-child(3){animation: dropdown 6s ease-in infinite;}&:nth-child(4){animation: dropdown 6s ease-out infinite;}&:nth-child(5){animation: dropdown 6s ease-in-out infinite;}&:last-child{animation: dropdown 6s cubic-bezier(.08,.6,.67,1.03) infinite;}
}
animation-direction

animation-direction 定义是否应该轮流反向播放动画,如果动画次数设置为一次,则无效。

说明
normal默认,正常播放
reverse动画反向播放
alternate交替播放, 动画会在奇数次数(1、3、5 等等)正常播放,而在偶数次数(2、4、6 等等)反向播放。
alternate-reverse交替播放, 动画会在奇数次数(1、3、5 等等)反向播放,而在偶数次数(2、4、6 等等)正常播放。

我们可以把上面的案例每个都加上alternate的参数,再看下效果,是不是更赞了?

ul li{&:first-child{animation: dropdown 6s ease infinite alternate;}&:nth-child(2){animation: dropdown 6s linear infinite alternate;}&:nth-child(3){animation: dropdown 6s ease-in infinite alternate;}&:nth-child(4){animation: dropdown 6s ease-out infinite alternate;}&:nth-child(5){animation: dropdown 6s ease-in-out infinite alternate;}&:last-child{animation: dropdown 6s cubic-bezier(.08,.6,.67,1.03) infinite alternate;}
}

 旋转

img {width: 315px;height: 315px;animation: circle 10s infinite linear;@keyframes circle {from {transform: rotate(0);}to {transform: rotate(360deg);}}}//
@keyframes circleAnimate {0%{opacity: .3;}100%{opacity: 1;}}.l{left:0;&::before{position: absolute;width:100%;height:100%;content: "";background: url(./img/l1.min.png);animation: circleAnimate 1s ease-in-out 0s infinite;}&::after{position: absolute;width:100%;height:100%;content: "";background: url(./img/l1-2.min.png);animation: circleAnimate 1s ease-in-out 0.5s infinite;}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/84280.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot工程模板

spring脚手架&#xff1a;https://start.spring.io/ <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocati…

Git小乌龟不弹add push commit的方法

1.关于使用Git小乌龟无法弹出Add菜单的问题 第一次使用小乌龟软件&#xff0c;发现可以正常将程序从Gitee仓库中克隆到本地&#xff0c;但是在将本地的程序上传到Gitee仓库中时&#xff0c;TortoiseGit无法弹出Add那一系列菜单&#xff0c;如下图所示&#xff1a; 2.解决方法 …

开源日报 0821:帮你修复老旧照片

这篇文章总结了几个开源项目的特点和优势。其中包括了 Python 资源列表、金融研究工具、动画精灵程序、游戏和旧照片修复项目等。这些项目提供了丰富的功能和技术支持&#xff0c;用户可以根据自己的需求进行定制和改进。总的来说&#xff0c;这些开源项目为开发者和用户提供了…

信息化发展55

数据备份 1 、数据备份是为了防止由于用户操作失误、系统故障等意外原因导致的数据丢失&#xff0c; 而将整个应用系统的数据或一部分关键数据复制到其他存储介质上的过程。这样做的目的是保证当应用系统的数据不可用时&#xff0c; 可以利用备份的数据进行恢复&#xff0c;尽…

安防视频/视频汇聚平台EasyCVR使用onvif探测添加设备通道详细步骤来啦!

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

[论文笔记]Prompt Tuning

引言 今天带来第三篇大模型微调论文笔记The Power of Scale for Parameter-Efficient Prompt Tuning。 作者提出了prompt tuning(提示微调),一种简单高效地微调方法。可以看成是prefix tuning的简化版。 总体介绍 最近的研究表明,提示设计(prompt design)在通过文本提示调…

hw0921

多线程发送方 #include <myhead.h> int main(int argc, const char *argv[]) {//创建流式套接字int cfdsocket(AF_INET,SOCK_STREAM,0);printf("socket success\n");//填充服务器地址struct sockaddr_in sin;sin.sin_familyAF_INET;sin.sin_porthtons(4444);s…

大数据学习1.1-Centos8虚拟机安装

1.创建新的虚拟机 2.选择稍后安装OS 3.选择Linux的CentOS8 4.选择安装路径 5.分配20g存储空间 6.自定义硬件 7.分配2g内存 8.分配2核处理器 9.选择镜像位置 10.开启虚拟机安装 推荐密码设置为root

VMware 三种网络连接模式

VMware虚拟机的三种网络连接模式&#xff1a;桥接&#xff0c;NAT&#xff0c;仅主机。 网卡vmnet0,vmnet1,vmnet8区别。 在VMware中&#xff0c;虚拟机的网络连接主要是由VMware创建的虚拟交换机负责实现的&#xff0c;VMware可以根据需要创建多个虚拟网络。 VMware的虚拟网…

WebGL 用鼠标控制物体旋转

目录 鼠标控制物体旋转 如何实现物体旋转 示例程序&#xff08;RotateObject.js&#xff09; 代码详解 示例效果 鼠标控制物体旋转 有时候&#xff0c;WebGL程序需要让用户通过鼠标操作三维物体。这一节来分析示例程序RotateObject&#xff0c;该程序允许用户通过拖动&…

【计算机网络】信号处理接口 Signal API(1)

收发信号思想是 Linux 程序设计特性之一&#xff0c;一个信号可以认为是一种软中断&#xff0c;通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍&#xff0c;从而更好的理解信号编程。 signal 遵循 C11&#xff0c;POSIX.…

人类学习 vs. 机器学习

摘要: 机器学习与人类学习的范式有一定的联系. 本文发掘这些联系, 作用是指导人类的学习. 1. 什么是学习? 对于人类而言, 学习是改造大脑皮层的过程. 我们会发现, 不同人学习不同东西的能力也不一样, 如有些人数学厉害, 有些人音乐厉害. 同时, 也有些牛人, 学习到了学习的方…

DC/DC开关电源学习笔记(十)Buck降压电路仿真及工程应用实例

(十)Buck降压电路仿真及工程应用实例 1. 仿真应用实例1.1 案例一1.2 案例二2. 工程应用实例2.1 数字DC/DC应用实例2.2 模拟DC/DC应用实例1. 仿真应用实例 1.1 案例一 仿真技术要求输入:输入电压30~90V,输出电压28V,输出电流最大10A,开关频率100KHz。我们按照参数极限工…

一、八大排序(sort)

文章目录 一、时间复杂度&#xff08;一&#xff09;定义&#xff1a;常数操作 二、空间复杂度&#xff08;一&#xff09;定义&#xff1a; 三、排序&#xff08;一&#xff09;选择排序1.定义2.代码3.特性 &#xff08;二&#xff09;冒泡排序1.定义2.代码3.特性 &#xff08…

雷龙CS SD NAND(贴片式TF卡)性能体验及应用

前段时间有幸得到了雷龙出品的贴片式的TF卡的芯片及转接板&#xff0c;从而对其产品进行了相应的了解和测评。 从获得的相关资料看&#xff0c;雷龙出品的贴片式芯片分为两类&#xff0c;即BOW型和AOW型&#xff0c;其中BOW型为第一代产品&#xff0c;属商业级&#xff1b;AOW…

Jackson 配置 Bigdecimal 序列化

笔者的项目使用了 jackson 序列化 要求 主要是两个方面&#xff1a; 位数&#xff1a;位数大于等于 4&#xff0c;则保留 4 位小数&#xff0c;否则保留对应的小数位数;格式&#xff1a;不出现科学技术法&#xff0c;不以 0 结尾. 代码 序列化实现&#xff1a; public cla…

【网络协议】Http-中

搜索引擎&#xff1a;搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息&#xff0c;在对信息进行组织和处理后&#xff0c;为用户提供检索服务&#xff0c;将检索的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术&#xff0c;它旨在提…

简明 SQL 组合查询指南:掌握 UNION 实现数据筛选

在SQL中&#xff0c;组合查询是一种将多个SELECT查询结果合并的操作&#xff0c;通常使用UNION和UNION ALL两种方式。 UNION 用于合并多个查询结果集&#xff0c;同时去除重复的行&#xff0c;即只保留一份相同的数据。UNION ALL 也用于合并多个查询结果集&#xff0c;但不去除…

java 通过读配制文件的方式连接库。 信息保存在文件内

# JDBC配置 db.urljdbc:mysql://mysql.sqlpub.com:3306/huangjin db.usernameXXXXXXXX db.passwordfc12f7a5215e8e0a package com.abc.project3;import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.sql.*; import java.util.Prope…

XSS跨站脚本攻击

XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击,XSS属于客户端攻击&#xff0c;受害者最终是用户&#xff0c;在网页中嵌入客户端恶意脚本代码&#xff0c;最常用javascript语言。&#xff08;注意&#xff1a;叠成样式表CSS已经被占用所以叫XSS&#xff09…