CSS动画实现的三种方式

2023-10-26

CSS动画

CSS动画就是元素从一种样式过渡到另一种样式的过程。常见的动画效果很多,比如:平移、缩放、旋转等。CSS实现动画的方式有以下几种:

  1. transition:实现渐变动画
  2. transform:实现缩放、平移等效果
  3. animation:实现自定义动画

transition

  • property:填写需要变化的CSS属性
  • duration:完成过渡效果需要的时间单位(s或者ms)
  • timing-function:完成效果的速度曲线,比如:linear(匀速变化)、ease(从慢到快再到慢)、ease-in(慢慢变快)、esae-out(慢慢变慢)等
  • delay:动画效果的延迟触发时间

并不是所有属性都能过渡,比如display: none 到 display: block

transform

  • translate:位移
  • scale:缩放
  • rotate:旋转
  • skew:倾斜

一般配合transition过度使用。transform不支持inline元素,使用之前把它变为block

animation

属性 描述 属性值
animation-duration 指定动画完成的一个周期所需要的时间,单位s或ms,默认为0
animation-timing-function 完成动画的速度曲线 linear、ease、ease-in、ease-out、ease-in-out
animation-delay 指定动画的延迟时间,即动画何时开始,默认为0
animation-iteration-count 指定动画的次数,默认为1
animation-direction 指定动画播放的方向,默认为normal normal、reverse、alternate、alternate-reverse
animation-fill-mode 指定动画的填充模式,默认为none forwards、backwards、both
animation-play-state 指定动画播放状态,正在运行或暂停。默认是 running running、pauser
animation-name 指定动画的名称

CSS动画只需要定义一些关键帧,其余的帧由浏览器根据计时函数插值计算出来。使用@ketframes定义关键帧,例如我们想要让元素旋转一圈,只需要定义开始和结束两帧即可:

@keyframes rotate{
  from{
    transform: rotate(0deg)
  }

  to{
    transform: rotate(360deg)
  }
}

也可以使用百分比来刻画帧

@keyframes rotate{
    0%{
        transform: rotate(0deg);
    }
    50%{
        transform: rotate(180deg);
    }
    100%{
        transform: rotate(360deg);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS动画实现的三种方式 的相关文章

  • 如何使 Flexbox 响应式?

    我有一个包含两个元素的 div 我想水平堆叠它们 Div C 具有固定宽度 div B 将填充其余空间 然而 div B 的内容可能是固定宽度 动态 或 100 宽度 div B 我想要的效果是 如果屏幕宽度足够小 以至于在 div B 和
  • IE7 Z-Index 分层问题

    我隔离了 IE7 的一个小测试用例z indexbug 但不知道如何修复 我一直在玩z index整天 出什么问题了z index in IE7 测试CSS input border 1px solid 000 div border 1px
  • @font-face 字体不起作用

    我正在尝试从本地存储中获取一种可以使用的字体 font face font family const src url const ttf fp title1 font family const trebuchet ms font size
  • CSS 可调整大小的带标题的图像

    我正在尝试获取并排显示的两个图像的 HTML 布局 并填充页面 同时保持其纵横比并保持图像彼此相邻 即不在页面每一半的中心 我还想要顶部有一个标题 我几乎已经使用下面的 CSS hackery 实现了这一目标 目前它看起来像这样 如果我水平
  • 边距和图像问题

    对于我的一生 我无法弄清楚为什么这里的某些图像的边距无法正确呈现 在第一和第二横向图像之后 边距与其上方的图像 容器重叠 任何人都可以透露一些信息吗 http jsfiddle net JeffPannone rDw6R 17 http j
  • 无法使用 CSS 设置文本区域宽度

    我尝试使用此 CSS 来设置表单元素的宽度 input type text textarea width 250px 如果您查看此 Firefox 屏幕截图 您会发现字段的宽度不同 我在 Safari 中也得到了类似的效果 替代文本 htt
  • Html 表格右对齐

    item a item b item c item d item e item a item b item c item d item e 我的表中有两行 我希望它们每行都有一个左对齐的项目和一些右对齐的项目 如上面的第一个示例所示 然而
  • 为什么负边距会影响我的页面宽度?

    请参考以下内容example http jsfiddle net wdm954 Fcznp 9 其中 200px 宽的外部 div 旨在确定我们的页面宽度 它包含一个 400px 宽的内部 div 但左 右负边距为 100px 我预期的最终
  • 如何找到“display: none”元素的尺寸?

    我在 div 中有一些获取 CSS 的子元素display none应用于它 我想找出子元素的尺寸是多少 我怎样才能做到这一点 小提琴演示 https jsfiddle net h9b17vyk var o document getElem
  • 将比其父级更宽的 div 居中,而不设置负左边距

    我有一个div里面有一个div 里面的 div 比它的父级宽 所以正常的过程 margin left auto margin right auto 生成一个内部 div 其中子级的左边缘与父级的左边缘对齐 当人们回答这个问题时 他们通常会采
  • 当用另一个图像替换它时,防止悬停时图像闪烁(CSS)

    当我在页面加载后第一次将光标悬停在徽标上时 它开始快速闪烁大约一秒钟 我考虑过使用精灵 但我不想将徽标设置为背景图像 我已经有了一个 这是我的 CSS 代码
  • Firefox 中忽略的图像最大高度百分比

    HTML div class container div
  • 如何在 Bootstrap 4 中的面包屑元素右侧插入按钮?

    我正在使用以下面包屑 ol class breadcrumb li class breadcrumb item a href Home a li li class breadcrumb item active My Account li o
  • ngClassOdd/ngClassEven 未按预期工作

    使用 Angular 版本 1 2 15 我发现了一个错误 该错误似乎从版本 1 2 2 开始直到 1 2 15 重现 Plunker 演示 http plnkr co edit 3nExMtZ92AQS7BvLsQ8m p preview
  • @Page { size:landscape} 过时了吗?

    CSS 规则 page size landscape 应该强制浏览器以横向模式打印页面 stackoverflow 上的许多问题 许多其他编程网站以及参考著作 例如 O Reilly 的 HTML XTHML 权威指南 第五版 中都提到了这
  • 如何在 Angular 2 中动态更改 :host 中的 CSS?

    如何动态更改组件宿主的 CSS 属性 我有一个组件 在它的 CSS 中我给了它一个样式 host overflow x hidden 在子组件中单击按钮时 我需要添加overflow y hidden到主机组件 我如何实现这种行为 这是一个
  • 如何在浏览器调整大小时调整div大小

    是的 所以我不使用粘性页脚 而是决定创建一个 jQuery 函数来更改 mainContent div 的大小 以便页脚可以很好地适应 基本上我想做的是 mainContent height 100 40px Where footer he
  • css打印模式:仅在生成的word文档的第一页上显示页眉和页脚

    我使用 html 代码成功生成了 Word 文档 其中页眉和页脚以 css 打印模式设置样式 这是我的代码
  • 在响应式网格上设置多个“相同高度”行部分的 CSS 唯一解决方案

    Wanted 仅 CSS 的解决方案 可在每行基础上启用多个等高网格 部分 并且也是响应式的 注意 这是一个后续问题这个问题 https stackoverflow com questions 44115503 css only solut
  • 反应光滑的幻灯片高度问题

    我无法让这些 React Slick 滑块组件达到相同的高度 它们都是响应式 div 并随着页面大小的变化相应地调整大小 但理想情况下 我希望左侧的 div 与右侧的 div 具有相同的高度 我使用下面的代码片段定义了 SimpleSlid

随机推荐

  • Android libdvm.so 与 libart.so

    Android libdvm so 与 libart so 系统升级到5 1之后 发现system lib 下面没有libdvm so了 只剩下了libart so 对于libart模式 从4 4就在Developer optins里面就可
  • FsonFormat Eclipse Plugin 一键解决复杂JSON ,快速实现JavaBean

    简介 当开发人员或者测试人员在开发或者测试接口中 去获取到接口返回的结果值时 都要通过JSONObject和JSONArray解析json结构 然后再通过For循环遍历相应的Key 最后把value值进行App展示或者校验是否预期结果 编写
  • 有关树莓派+arduino构建小车

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题 有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中 居左 居右 Sma
  • eclipse中没有runtime environments_Go语言中的panic和recover

    初识别panic和recover 本节将分析两个经常成对出现的关键字 panic 和 recover 这两个关键字都与 defer 有千丝万缕的联系 也都是 Go 语言中的内置函数 但是提供的功能却是互补的 panic 能够改变程序的控制流
  • opencv 图像雾检测_雾的检测算法

    雾的检测算法相对来说文献不是很多 这次和大家介绍两篇相对来说比较容易实现的两篇文章 其中一篇是基于灰度直方图的方式进行分析检测 另一篇是将rgb图像空间转化为hsv空间进行分析检测 1 灰度图检测 首先来说第一片 Fog Detection
  • 如何用ai写文章?这三个软件可以自动生成文章

    随着人工智能技术的不断发展 ai写作已经成为了当今的热门话题 它是指利用机器学习 自然语言处理等技术 让机器能够像人类一样写作 相较于传统写作方式 ai写作大大提高了写作的效率和质量 可以让我们的创意和技术相融合 其应用范围也非常广泛 无论
  • 探索编程世界的宝藏:程序员必掌握的20大算法

    程序员必须掌握哪些算法 文章目录 1 引言 2 冒泡排序算法 编程世界的排序魔法 3 选择排序算法 排序世界的精确挑选器 4 插入排序算法 排序世界的巧妙插珠者 5 快速排序算法 排序世界的分而治之大师 6 归并排序算法 排序世界的合而为一
  • 统计并输出该字符串中26个英文字母

    字符串 第3题 描述 输入一个字符串 统计并输出该字符串中26个英文字母 不区分大小写 出现的次数 输入 输入一个字符串 输出 分行输出26个英文字母 不区分大小写 出现的次数 输入示例 I am a student 输出示例 a 2 d
  • Python:蒙特卡罗方法模拟解决三门问题

    蒙特卡罗方法与三门问题 蒙特 卡罗方法 Monte Carlo method 也称统计模拟方法 是一种统计学的方法 模拟方法 通过大量随机样本模拟问题 从而获得所要计算的值 三门问题 三门问题 Monty Hall problem 亦称为蒙
  • STM32:TIM_OCxInit函数用法解释

    TIM OC3Init函数是用于初始化定时器TIM的PWM输出通道3的函数 可以使用以下步骤进行使用 创建一个TIM OC InitTypeDef类型的结构体对象 例如命名为TIM OCInitStruct 使用TIM OCStructIn
  • 网络基础知识总结

    一 广域网和局域网 局域网 Local Area Network 简称LAN 也就是内网 局域网就是在固定的一个地理区域内由2台以上的电脑用网线和其他网络设备搭建而成的一个封闭的计算机组 它可以是邻居之间的2台电脑 也可以是一幢100层大楼
  • [深入研究4G/5G/6G专题-41]: URLLC-12-《3GPP URLLC相关协议、规范、技术原理深度解读》-6-MAC层调度器的总体架构、调度器的原理和三种URLLC调度器的增强方案

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文主页 https blog csdn net HiWangWenBing article details 125942872 目录 前言
  • 杭电ACM 1000题

    import java util Scanner public class Main public static void main String args Scanner cin new Scanner System in while c
  • ajax 跨域 session 丢失问题

    ajax 跨域时session丢失了 解决方法 首先我 Google 了一下这个问题的原因 我找到了这个 1 Access Control Allow Origin该字段是必须的 它的值要么是请求时Origin字段的值 要么是一个 表示接受
  • Cookie与前端安全

    目录 一 Cookie的作用 二 cookie与http协议 1 http响应 cookie的生成 2 http请求 cookie的发送 三 Cookie的属性 1 Expires Max Age 2 Domain Path 3 Secur
  • 30分钟速成TypeScript

    一 TypeScript 是什么 TypeScript 是 JavaScript 的超集 在 JavaScript 的基础上增加了类 模块 接口 泛型和静态类型 可选 等常见的概念 从编程语言的动 静来区分 TypeScript属于静态类型
  • JS代码风格利器——Eslint

    ESLint 是一个开源的 JavaScript 代码检查工具 由 Nicholas C Zakas 于 2013 年 6 月 创建 代码检查是一种静态的分析 常用于寻找有问题的模式或者代码 并且不依赖于具体 的编码风格 对大多数编程语言来
  • 网易云音乐首页导航样式的实现

    实现效果图 背景图片
  • xml sax localName和qName的区别

    对于DefaultHandler类中方法的成员 String uri String localName String qName Attributes attributes 弄的不是很清楚 于是得到下面这片文章感觉讲的蛮清楚的 无节操的贴过
  • CSS动画实现的三种方式

    CSS动画 CSS动画就是元素从一种样式过渡到另一种样式的过程 常见的动画效果很多 比如 平移 缩放 旋转等 CSS实现动画的方式有以下几种 transition 实现渐变动画 transform 实现缩放 平移等效果 animation