CSS3与动画有关的属性transition、animation、transform对比(史上最全版)

CSS3与动画有关的属性transition、animation、transform对比(史上最全版)

1. transition属性

transition属性是CSS3新特性,用于设定样式过渡效果,在原样式和新样式之间添加过渡动画。它需要指定过渡的属性、过渡的时间以及过渡的方式。过渡的属性可以是任意一个CSS属性,过渡时间可以是秒或毫秒,过渡方式可以是线性的、缓动的、三次贝塞尔曲线等。

1.1 基本语法

transition: property duration timing-function delay;

其中,

  • property是需要过渡的样式属性。例如,background-colortransformbox-shadow等。
  • duration是过渡动画的时间,可以使用秒或毫秒计数,例如2s或1000ms。
  • timing-function是过渡效果的变换速度,如ease、linear、ease-in、ease-out、ease-in-out等预设值,以及贝塞尔曲线。
  • delay是设定延迟执行过渡动画的时间,可以使用秒或毫秒计数,例如1s或500ms。

1.2 示例说明

如下面的代码,当鼠标滑过 <div> 元素时,它的背景色将会从白色变为黑色,时长为1秒:

div {
  background-color: white;
  transition: background-color 1s;
}
div:hover {
  background-color: black;
}

2. animation属性

animation是CSS3新特性之一,用于设定关键帧动画。它可以定义一个动画周期内的所有动作,并让浏览器将这些动作动起来,实现更加复杂的动画效果。在使用 animation 属性时,需要指定动画名称、持续时间、动画速度曲线等;另外,还需要定义关键帧,即动画进行到某个百分比时的具体表现形式。

2.1 基本语法

animation: name duration timing-function delay iteration-count direction fill-mode;

其中,

  • name是指定动画的名称。@keyframes 规则用于指定动画中不断变化的样式,这个名称要跟 @keyframes 规则的名称对应。
  • duration是动画周期的时长,可以使用秒或毫秒计数,例如2s或1000ms。
  • timing-function是过渡效果的变换速度,如ease、linear、ease-in、ease-out、ease-in-out等预设值,以及贝塞尔曲线。
  • delay是设定动画延迟执行的时间,可以使用秒或毫秒计数,例如1s或500ms。
  • iteration-count是设定动画的重复次数,可以设定为具体的次数,或者infinite表示无限循环。
  • direction是设定动画的播放方向,如normal、reverse、alternate、alternate-reverse。
  • fill-mode是设定在动画结束后,元素保持动画最后一帧的状态,可以包括none、forwards、backwards、both等。

2.2 示例说明

下面的代码展示了使用 animation 属性来实现一个永远旋转的圆形, CSS3 中提供了两种创建圆形的方法,一是用 border-radius 创建一个圆形,二是用 transformscale 缩放样式创建一个圆形。

.circle1 {
  width: 200px;
  height: 200px;
  background: #44B78B;
  border-radius: 50%;
  animation: rotate1 2s linear infinite;
}
@keyframes rotate1 {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(360deg);
  }
}

.circle2 {
  width: 200px;
  height: 200px;
  background: #44B78B;
  transform: scale(1);
  animation: rotate2 2s linear infinite;
}
@keyframes rotate2 {
  from {
    transform: rotate(0) scale(1);
  }
  to {
    transform: rotate(360deg) scale(1);
  }
}

3. transform属性

CSS3的 transform 属性用于元素的变形,可以将元素做平移、旋转、缩放等操作。它最重要的特点是在不改变元素自身原有格式的情况下,对其进行变形。

3.1 基本语法

transform: none|transform-functions;

其中,

  • none 表示不进行任何变形。
  • transform-functions 表示进行一系列变形操作,可以使用多个值同时作用于同一个元素。

3.2 示例说明

下面的代码展示了如何使用 transform 属性对一个 div 元素做平移和旋转。

div {
  width: 100px;
  height: 100px;
  background-color: blue;
  transform: translate(50px, 50px) rotate(45deg);
}

如上述代码中所示,当应用 translaterotate函数时,元素将沿着 X 和 Y 轴方向平移并旋转。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS3与动画有关的属性transition、animation、transform对比(史上最全版) - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • Class与ID区别 margin和padding区别 CSS学习笔记

    Class与ID区别- 使用 Class 和 ID 都可以为 HTML 元素添加样式,但二者存在以下区别:- ID 是给唯一的元素设置样式,而 Class 是可以给同类元素设置样式,一个元素可以同时拥有多个 Class。- ID 选择器的优先级要高于 Class 选择器,即当一个元素同时设置了 ID 和 Class 两种样式选择器,ID 选择器的样式属性会覆…

    css 2023年6月10日
    00
  • css box-shadow实现曲边阴影与翘边阴影

    CSS的box-shadow属性可以用于为框添加阴影效果。阴影可以是内部阴影或外部阴影,可以是普通阴影或曲边阴影、翘边阴影等特殊形状。本文将为您提供实现CSS曲边阴影与翘边阴影的完整攻略。 实现CSS曲边阴影 在实现CSS曲边阴影效果之前,首先需要为框使用圆角(border-radius)来实现曲边。接下来使用box-shadow属性来添加阴影效果。 以下是…

    css 2023年6月9日
    00
  • Seajs源码详解分析

    Seajs源码详解分析 什么是Seajs? SeaJS是一个遵循CMD规范的JavaScript模块加载器,它类似于Node.js中的require函数,但是可以在浏览器端运行。Seajs支持异步加载模块,让代码模块化,方便管理和维护。 Seajs源码结构 Seajs的源码可以从GitHub上获取,包含3个文件:sea.js、plugin-base.js和p…

    css 2023年6月10日
    00
  • 详解html5页面 rem 布局适配方法

    下面是详解“详解HTML5页面rem布局适配方法”的完整攻略: 什么是rem布局 rem 是root em(根em)的缩写,指相对于 HTML 根元素的字体大小来计算其他元素大小的一种尺寸单位。在移动端开发中,rem 布局是一种常用的页面适配方案,其可以让页面元素在不同设备中具有类似的显示效果。 如何实现rem布局 第一步:设置 html 根元素的字体大小 …

    css 2023年6月11日
    00
  • Vue3新特性之在Composition API中使用CSS Modules

    下面是针对“Vue3新特性之在Composition API中使用CSS Modules”的完整攻略。 什么是CSS Modules? CSS Modules是一种流行的CSS样式处理器,它允许我们将CSS代码限定在组件范围内,从而避免了样式之间的污染和覆盖。 在CSS模块中,样式类名不是全局的,而是局部的,通过这种方式,我们能够在写CSS样式代码时避免影响…

    css 2023年6月9日
    00
  • 使用snowfall.jquery.js实现爱心满屏飞的效果

    使用 snowfall.jquery.js 可以实现很多有趣的效果,其中最常见的就是爱心满屏飞的效果。下面是实现该效果的完整攻略。 1. 引入必要的文件 首先需要在 HTML 文件中引入 jquery.js 和 snowfall.jquery.js 两个文件: <script src="https://code.jquery.com/jque…

    css 2023年6月10日
    00
  • 响应式框架Bootstrap栅格系统的实例

    接下来我将详细讲解响应式框架Bootstrap栅格系统的实例攻略。 响应式框架Bootstrap栅格系统的实例攻略 Bootstrap栅格系统简介 Bootstrap栅格系统是基于栅格布局设计的响应式框架,它是由一系列的行(row)和列(col)组成的网格系统。Bootstrap栅格系统最常用的是12列网格系统,它允许在页面上创建各种布局。使用Bootstr…

    css 2023年6月11日
    00
  • 浅谈鸿蒙 JavaScript GUI 技术栈

    浅谈鸿蒙 JavaScript GUI 技术栈 简介 鸿蒙已经成为国内最火热的操作系统之一,与此同时,鸿蒙的 GUI 技术栈也在快速发展。作为鸿蒙的核心开发人员,我们提供以下完整攻略,旨在介绍鸿蒙 JavaScript GUI 技术栈。 概述 在鸿蒙操作系统中,GUI 交互界面主要使用 JavaScript 进行开发。使用 JavaScript 技术栈有很多…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部