当前位置: 首页 > news >正文

css—动画

一、背景

        本文章是用于解释上一篇文章中的问题,如果会动画的小伙伴就不用再次来看了,本文主要讲解一下动画的设定规则,以及如何在元素中添加动画,本文会大篇幅的讲解一下,动画属性。注意,这是css3的内容,默认认为已经了解了css的知识。

二、如何配置动画规则

        关于如何定制动画规则,想必看过我的轮播图那篇文章的小伙伴们已经不陌生了,接下来我就简单的说一下如何去定制动画规则。

1、首先动画规则是通过@keyframes 动画名【注意动画名称任意,但是建议见名知意】。

2、在动画名称之后使用花括号来定义相关的规则,例如让盒子的宽高变化,或者是移动元素。

3、定制的阶段可以分为简单的写法,但是有缺点,只能设置开始和结束的状态。

4、另一种就是相对复杂的百分比写法,相对复杂,但是更灵活,建议使用百分比定制,但是还是要根据实际情况选择,这里不做限制。

1、简单写法

@keyframes animation {from{元素开始的状态}to{元素目标状态}
}

2、百分比 

@keyframes animation {0%{状态一【开始状态】}25%{状态二}50%{状态三}75%{状态四}100%{状态五【目标状态】}
}

 注意:当使用百分比写法的时候阶段是可以自由拆分的,同样也是根据具体情况具体定制。

三、相关属性介绍

        关于属性方面我们先来说一下基本的一些属性,大家肯定有一个疑惑,动画规则有了,但是如何添加到元素上呢,那么接下来就来聊一聊如何去为元素添加动画规则。

1、基本属性使用

1、首先添加动画规则,需要使用animation-name来声明动画的名称,也就是动画规则中的名称。

2、那么动画一定是有时间的,所以接下来了就需要设定时间,时间是通过animation-duration来设定的,值的单位是秒【s】或者毫秒【ms】。

以上就是动画的基本使用,如果你只是想回忆一下自己学过的动画知识,那么想必看到这里已经想起来不少了,如果你是小白,那么继续阅读下去,相信会给你带来不菲的价值。

2、其他属性的使用

        刚刚介绍完两个基本的属性,有了以上的两个属性,再加上动画规则,就可以做到一个简单的动画,但是我们的目的也一定不是简简单单的让元素动一下,那和过渡属性又有什么区别呢,那么接下来就一起来看一下,动画的其他有趣的属性。

1、animation-delay

        这是一个延时属性,就像是他的字面意思,这个属性会让动画在开始的时候延长一段时间之后,再开始动画的播放,接下来演示一下。

 <body><div class="box"></div></body>
 <style>.box {width: 100px;height: 100px;background: orange;animation-name: moveR;animation-duration: 2s;animation-delay: 2s;}@keyframes moveR {0% {transform: translateX(0);}20% {transform: rotate(360deg);background: pink;}50% {background: blue;border-radius: 50%;}to {transform: translateX(1000px);background: red;}}</style>

效果展示:

 延迟属性就说到这里。

2、animation-timing-function

        这个属性是用来定义过渡形式的,用来固定元素的动画节奏。

选择器 {animation-timing-function:ease(慢快慢,默认值)linear(匀速)ease-in(先慢后快)ease-out(先快后慢)ease-in-out(慢快慢,相对于ease更慢一点)step-start(不考虑过渡时间直接就是终点)step-end(过渡时间到直接到终点)steps(数值)(步长,一段一段的过渡)cubic-bezier(.88,.54,.35,1.79)贝塞尔曲线

这个属性就不做演示喽,把这个机会留给大家,这个属性和transition中的过度形式是一样的。

3、animation-interation-count

        这个属性是用来定义动画播放次数的,可以是1次,或者是多次,也有一些固定的属性,例如:infinite,这个属性值的意思就是动画会一直运动。具体使用可以看css—轮播图实现-CSDN博客文章浏览阅读636次,点赞6次,收藏18次。CSS样式来实现图片的切换效果。它不依赖于JavaScript,运行速度较快,并且具有较好的兼容性。https://blog.csdn.net/m0_64387122/article/details/144049330?spm=1001.2014.3001.5502这篇文章就使用到了这个属性,大家可以去看一下,也是可以学习到一些知识的。

4、 animation-direction

        这个属性是用来定义动画的运动方向的

        animation-direction: normal(左到右,默认值)/reverse(反向)/alternate(来回滚动)/alternate-reverse(反向来回滚动)

 从左到右,和反向,也就是从右到左,就不进行演示了,还是比较好理解的,接下来就来演示一下来回滚动。

接下来我们来看一下代码:

<body><div class="box"></div></body>
<style>.box {width: 100px;height: 100px;background: orange;animation-name: moveR;animation-duration: 2s;animation-iteration-count: 3;animation-direction: alternate;}@keyframes moveR {0% {transform: translateX(0);}20% {transform: rotate(360deg);background: pink;}50% {background: blue;border-radius: 50%;}to {transform: translateX(1000px);background: red;}}</style>

其中的animation-direction: alternate;属性就是控制元素来回滚动的重要环节。

5、 animation-fill-mode

        这个属性是用来定义动画以外的状态,也就是动画最后会停在那里?

结构:

animation-fill-mode: forwards(停止在最后一帧)/backforwards(停止在第一帧)

这里就不延时停在第一帧了,这是默认的。接下来我就来演示一下停止在最后一帧。效果如下:

<body><div class="box"></div></body>
<style>.box {width: 100px;height: 100px;background: orange;animation-name: moveR;animation-duration: 2s;animation-fill-mode: forwards;}@keyframes moveR {0% {transform: translateX(0);}20% {transform: rotate(360deg);background: pink;}50% {background: blue;border-radius: 50%;}to {transform: translateX(1000px);background: red;}}</style>

6、animation-play-state

        这个属性是用来定义动画播放状态的。

结构:

animation-play-state: paused(暂停)/running(运行,默认值)

默认值是运行状态的,所以同样不做演示,只演示暂停的使用,搭配hover伪类可以实现交互的效果。效果如下:

 

<style>.box {width: 100px;height: 100px;background: orange;animation-name: moveR;animation-duration: 2s;animation-iteration-count: infinite;animation-direction: alternate;animation-fill-mode: forwards;}@keyframes moveR {0% {transform: translateX(0);}20% {transform: rotate(360deg);background: pink;}50% {background: blue;border-radius: 50%;}to {transform: translateX(1000px);background: red;}}.box:hover {animation-play-state: paused;}</style>

 从效果中可以清楚的看到,当鼠标放在元素上时会静止元素的运动。

四、属性的符合写法

animation: moveR 2s 0.5s linear infinite alternate-reverse;

符合写法就是将之前介绍的属性进行合并使用,也是比较推荐的写法。这个就比较简单了,就不再重复解释了。 

五、结语

        感谢大家的耐心阅读,希望这篇文章能给您带来一些启发和帮助。如果您有任何疑问或建议,请随时在评论区留言,我会尽快回复,今天的分享就到这里了,如果您觉得这篇文章还不错,请点赞、分享给更多的朋友吧!同时,也欢迎关注我的博客,获取更多精彩内容。

相关文章:

css—动画

一、背景 本文章是用于解释上一篇文章中的问题&#xff0c;如果会动画的小伙伴就不用再次来看了&#xff0c;本文主要讲解一下动画的设定规则&#xff0c;以及如何在元素中添加动画&#xff0c;本文会大篇幅的讲解一下&#xff0c;动画属性。注意&#xff0c;这是css3的内容&am…...

YOLO系列论文综述(从YOLOv1到YOLOv11)【第12篇:YOLOv9——可编程梯度信息(PGI)+广义高效层聚合网络(GELAN)】

YOLOv9 1 摘要2 改进点3 网络架构 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第4篇&#xff1a;YOLOv2—…...

【ETCD】etcd简单入门之基础操作基于etcdctl进行操作

这里将使用etcdctl命令行工具来进行演示&#xff0c; 1、使用put命令向etcd写入kv对 使用etcdctl put命令来设置键值对。put命令接受两个参数&#xff1a;键和值 使用方法&#xff1a; NAME:put - Puts the given key into the storeUSAGE:etcdctl put [options] <key&g…...

第六届国际科技创新(IAECST 2024)暨第四届物流系统与交通运输(LSTT 2024)

重要信息 会议官网&#xff1a;www.lstt.org 大会时间&#xff1a;2024年12月6-8日 大会地点&#xff1a;中国-广州 简介 第六届国际科技创新暨第四届物流系统与交通运输国际&#xff08;LSTT 2024&#xff09;将于2024年12月6-8日在广州举办&#xff0c;这是一个集中探讨…...

20241127 给typecho文章编辑附件 添加视频 图片预览

Typecho在写文章时&#xff0c;如果一次性上传太多张图片可能分不清哪张&#xff0c;因为附件没有略缩图&#xff0c;无法实时阅览图片&#xff0c;给文章插入图片时很不方便。 编辑admin/file-upload.php 大约十八行的位置 一个while 循环里面,这是在进行html元素更新操作,在合…...

vue3使用monaco编辑器(VSCode网页版)

vue3使用monaco编辑器&#xff08;VSCode网页版&#xff09; 文章说明参考文章核心代码效果展示实践说明源码下载 文章说明 一直在找网页版的编辑器&#xff0c;网页版的VSCode功能很强大&#xff0c;这个monaco就是VSCode样式的编辑器&#xff0c;功能很强大&#xff0c;可以直…...

Spark优化--开发调优、资源调优、数据倾斜调优和shuffle调优等

针对Spark优化&#xff0c;我们可以从多个角度进行&#xff0c;包括开发调优、资源调优、数据倾斜调优和shuffle调优等。以下是一些具体的优化方法&#xff1a; 1. 开发调优 避免创建重复的RDD&#xff1a;对于同一份数据&#xff0c;只应该创建一个RDD&#xff0c;避免创建多…...

Day1 生信新手笔记

生信新手笔记 生信学习第一天笔记打卡。 转录组学中&#xff1a; 上游分析-基于linux&#xff0c;包括质控、过滤、比对、定量&#xff1b; 下游分析-基于R语言&#xff0c;包括差异分析、富集分析、可视化。 1. 级别标题 一个井号加空格 就是一级标题&#xff0c;两个井号加…...

Python的秘密基地--[章节2]Python核心数据结构

第2章&#xff1a;Python核心数据结构 Python中的数据结构提供了强大的工具来存储和操作数据。理解这些数据结构是Python编程的基础。 2.1 列表&#xff08;List&#xff09; 2.1.1 什么是列表 列表是一种有序的可变序列&#xff0c;用于存储一组数据。它支持多种类型的数据…...

【Electron学习笔记(三)】Electron的主进程和渲染进程

Electron的主进程和渲染进程 Electron的主进程和渲染进程前言正文1、主进程2、渲染进程3、Preload 脚本3.1 在项目目录下创建 preload.js 文件3.2 在 main.js 文件下创建路径变量并将 preload.js 定义为桥梁3.3 在 preload.js 文件下使用 electron 提供的contextBridge 模块3.4…...

[免费]SpringBoot+Vue景区订票(购票)系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue大景区订票(购票)系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue景区订票(购票)系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信息…...

idea_工程与模块管理

module相关操作 项目结构新建module移除模块删除模块导入模块 项目结构 层级关系 project(工程) - module(模块) - package(包) - class(类) 在 IntelliJ IDEA 中Project是最顶级的结构单元 &#xff0c;然后就是Module。目前&#xff0c;主流的大型项目结构基本都是多Module…...

A02、Java 设计模式优化

1、单例模式 1.1、什么是单例模式 它的核心在于&#xff0c;单例模式可以保证一个类仅创建一个实例&#xff0c;并提供一个访问它的全局访问点。该模式有三个基本要点&#xff1a;一是这个类只能有一个实例&#xff1b;二是它必须自行创建这个实例&#xff1b;三是它必须自行向…...

jdk8没有Buffer.put()

在Java中&#xff0c;Buffer是一个抽象类&#xff0c;它定义了缓冲区的通用行为。不过&#xff0c;Buffer本身并没有直接提供put()方法。put()方法是在Buffer的子类中定义的&#xff0c;比如ByteBuffer、CharBuffer、ShortBuffer、IntBuffer、LongBuffer、FloatBuffer和DoubleB…...

Artec Leo:航海设备维护的便携式3D扫描利器【沪敖3D】

挑战&#xff1a;海军服务提供商USP Maritime需要CAD数据来执行维修和改装任务&#xff0c;特别是在偏远地区的任务&#xff0c;以及原始设计丢失的情况下。 解决方案&#xff1a;Artec Leo, Artec Studio, Autodesk Inventor 效果&#xff1a;高精度船舶组件和船坞机械模型&…...

HCIA笔记6--路由基础

0. 概念 自治系统&#xff1a;一个统一管理的大型网络&#xff0c;由路由器组成的集合。 路由器隔离广播域&#xff0c;交换机隔离冲突域。 1.路由器工作原理 路由器根据路由表进行转发数据包&#xff1b; 路由表中没有路由&#xff0c;直接丢弃该数据包路由表中只有一条路…...

说说Elasticsearch拼写纠错是如何实现的?

大家好&#xff0c;我是锋哥。今天分享关于【说说Elasticsearch拼写纠错是如何实现的&#xff1f;】面试题。希望对大家有帮助&#xff1b; 说说Elasticsearch拼写纠错是如何实现的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&…...

Ubuntu20.04运行R-VIO2

目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库&#xff1a; 在终端中执行以下命令克隆项目&#xff1a;git clone https://github.com/rpng/R-VIO2.git编译项目&#xff1a; 使用 catkin_m…...

【软件项目测试文档大全】软件测试方案,验收测试计划,验收测试报告,测试用例,集成测试,测试规程和指南,等保测试(Word原件)

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.…...

Kubernetes集群操作

查看集群信息&#xff1a; kubectl get nodes 删除节点 &#xff08;⽆效且显示的也可以删除&#xff09; 后期如果 要删除某个节点&#xff0c;为了不增加其他节点的访问压力&#xff0c;先增加一个节点&#xff0c;再删除要删除的节点 语法 &#xff1a;kubect delete…...

分布式事务调研

目录 需求背景&#xff1a; 本地事务 分布式基本理论 1、CAP 定理 2、BASE理论 分布式事务方案 #2PC #1. 运行过程 #1.1 准备阶段 #1.2 提交阶段 #2. 存在的问题 #2.1 同步阻塞 #2.2 单点问题 #2.3 数据不一致 #2.4 太过保守 3PC #本地消息表 TCC TCC原理 …...

Webpack 的构建流程

Webpack 的构建流程可以概括为以下几个步骤&#xff1a; 1. 初始化&#xff1a; Webpack 读取配置文件&#xff08;webpack.config.js&#xff09;&#xff0c;合并默认配置和命令行参数&#xff0c;初始化Compiler对象。 2. 构建依赖图&#xff1a; 从入口文件开始递归地分…...

Cesium 当前位置矩阵的获取

Cesium 位置矩阵的获取 在 3D 图形和地理信息系统&#xff08;GIS&#xff09;中&#xff0c;位置矩阵是将地理坐标&#xff08;如经纬度&#xff09;转换为世界坐标系的一种重要工具。Cesium 是一个强大的开源 JavaScript 库&#xff0c;用于创建 3D 地球和地图应用。在 Cesi…...

ubuntu24.04 python环境

ubuntu24.04 python环境 0.引言1.使用整理 0.引言 新系统安装依赖库时报错&#xff1a; pip3installrequirements.txterror:externally−managed−environmentThisenvironmentisexternallymanaged╰–>ToinstallPythonpackagessystem−wide,tryaptinstallpython3−xyz,whe…...

YOLO系列论文综述(从YOLOv1到YOLOv11)【第9篇:YOLOv7——跨尺度特征融合】

YOLOv7 1 摘要2 网络架构3 改进点4 和YOLOv4及YOLOR的对比 YOLO系列博文&#xff1a; 【第1篇&#xff1a;概述物体检测算法发展史、YOLO应用领域、评价指标和NMS】【第2篇&#xff1a;YOLO系列论文、代码和主要优缺点汇总】【第3篇&#xff1a;YOLOv1——YOLO的开山之作】【第…...

Elasticearch索引mapping写入、查看、修改

作者&#xff1a;京东物流 陈晓娟 一、ES Elasticsearch是一个流行的开源搜索引擎&#xff0c;它可以将大量数据快速存储和检索。Elasticsearch还提供了强大的实时分析和聚合查询功能&#xff0c;数据模式更加灵活。它不需要预先定义固定的数据结构&#xff0c;可以随时添加或修…...

【大模型微调】一些观点的总结和记录

垂直领域大部分不用保持通用能力的,没必要跟淘宝客服聊天气预报,但是主要还是领导让你保持 微调方法没有大变数了,只能在数据上下功夫,我能想到的只有提高微调数据质量。 sft微调的越多,遗忘的越多. 不过对于小任务,rank比较低(例如8,16)的任务,影响还是有有限的。一…...

Vue 3 Hooks 教程

Vue 3 Hooks 教程 1. 什么是 Hooks&#xff1f; 在 Vue 3 中&#xff0c;Hooks 是一种组织和复用组件逻辑的强大方式。它们允许您将组件的状态逻辑提取到可重用的函数中&#xff0c;从而简化代码并提高代码的可维护性。 2. 基本 Hooks 介绍 2.1 ref 和 reactive 这两个函数…...

pandas数据处理及其数据可视化的全流程

Pandas数据处理及其可视化的全流程是一个复杂且多步骤的过程&#xff0c;涉及数据的导入、清洗、转换、分析、可视化等多个环节。以下是一个详细的指南&#xff0c;涵盖了从数据准备到最终的可视化展示的全过程。请注意&#xff0c;这个指南将超过4000字&#xff0c;因此请耐心…...

docker 在ubuntu系统安装,以及常用命令,配置阿里云镜像仓库,搭建本地仓库等

1.docker安装 1.1 先检查ubuntu系统有没有安装过docker 使用 docker -v 命令 如果有请先卸载旧版本&#xff0c;如果没有直接安装命令如下&#xff1a; 1.1.0 首先&#xff0c;确保你的系统包是最新的&#xff1a; 如果是root 权限下面命令的sudo可以去掉 sudo apt-get upda…...

福田附近网站建设/哪家网络营销好

重复的任务总是耗费时间和枯燥的。想象一下&#xff0c;逐一裁剪100张照片&#xff0c;或者做诸如Fetching APIs、纠正拼写和语法等任务&#xff0c;所有这些都需要大量的时间。为什么不把它们自动化呢&#xff1f;在今天的文章中&#xff0c;我将与你分享10个Python自动化脚本…...

asp网站如何虚拟发布/广告公司收费价格表

转载&#xff1a;http://meigesir.iteye.com/blog/1856503 当我们原来系统中有ubuntu的时候&#xff0c;如果我们重装或安装新的windows系统时&#xff0c;会发现ubuntu系统启动菜单不见啦&#xff0c;我们重现安装ubuntu系统也可以解决这个问题&#xff0c;但是我们以前在ubun…...

做vue用哪个网站/橙子建站

介绍 Redis发布与订阅功能可以让用户将消息同时发送给多个客户端 角色说明 发布者&#xff08;publisher&#xff09;&#xff1a; 发布消息的客户端。频道&#xff08;channel&#xff09;&#xff1a; 构建在服务器内部&#xff0c;负责接收发布者发送的消息&#xff0c;并…...

昆山做网站找文博/新东方雅思培训价目表

在这个项目上&#xff0c;也就是前端的工作居多。某日&#xff0c;一友人因把文件上传到 Dropbox 而引发众怒。同时&#xff0c;百度网盘也越来越不好用了。我随意吐槽之。于是乎&#xff0c;就有了这个项目。 某个周六深夜&#xff0c;写小程序已闷死&#xff0c;突然想起答应…...

网站建设全包公司推荐/seo是搜索引擎优化

重新安装了ubuntu12.04后&#xff0c;Ubuntu开机就出现&#xff1a;error&#xff1a;no such partitiongrub rescue >一般情况下&#xff0c;出现这类错误是引导文件出错或者系统找不到引导文件&#xff0c;而系统并没有坏&#xff0c;所以不用重新安装系统。需要进行如下的…...

wordpress缺少临时文件夹/百度网页版下载安装

备份一下手打快排的写法。 只能算是备份吧&#xff0c;没有解释快排的思想&#xff0c;以 int 为例。 没有考虑什么特殊情况&#xff0c;比如传入不合法指针等 /* 模仿一波 C 的 sort() 的接口* 只传排序区间的首尾指针*/ void quick_sort(int *left, int *right) {/* 枢轴值…...