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日

相关文章

  • css 中的background:transparent到底是什么意思有什么作用

    当我们在 CSS 中使用 background 属性时,其中一个可选值是 transparent。它实际上指定了一个透明的背景颜色,这意味着元素的背景将变得透明,背后的任何内容都将可见。 在 CSS 中,可能希望在某些情况下使用透明的背景。以下是 background:transparent 的一些常见用例: 1. 为文本设置透明背景 我们可以使用 back…

    css 2023年6月9日
    00
  • XHTML下css+div布局总结 超强推荐

    标题 XHTML下CSS+DIV布局总结 超强推荐 简介 CSS+DIV布局能够很好地将页面结构和样式分离。说白了,相比较于以前使用 HTML 表格或是居中结构来排版,使用CSS+DIV布局就可以在排版时减少很多不必要的 HTML 标签和代码,使得代码更加简洁。下面为大家总结一下在 XHTML 下 CSS+DIV 布局的过程与事项。 思路 1. XHTML …

    css 2023年6月10日
    00
  • Vue使用Swiper封装轮播图组件的方法详解

    下面是“Vue使用Swiper封装轮播图组件的方法详解”的完整攻略: Vue使用Swiper封装轮播图组件的方法详解 Swiper简介 Swiper是一个流行的开源移动端滑动组件,可以快速实现诸如轮播图、滑块切换等效果。在Vue中使用Swiper可以很方便地实现这些效果。 封装轮播图组件 我们可以使用Vue的单文件组件以及Swiper组件来封装我们的轮播图组…

    css 2023年6月10日
    00
  • CSS定义超链接样式的顺序及四个伪类的用法示例介绍

    下面是关于“CSS定义超链接样式的顺序及四个伪类的用法示例介绍”的完整攻略: 一、CSS定义超链接样式的顺序 在HTML中,超链接是通过<a>标签来实现的。想要修改超链接的样式,就要使用CSS。在CSS中,我们可以通过以下顺序来定义超链接的样式,这个顺序可以确保我们的样式能够按照我们想要的方式生效。 定义超链接的状态(link、visited、h…

    css 2023年6月10日
    00
  • 谈自适应宽度

    谈自适应宽度是前端开发中非常关键的一部分,它可以让网站在不同设备上拥有更好的显示效果。自适应宽度是通过CSS实现的,下面是一些实用的技巧和示例。 什么是自适应宽度? 自适应宽度指的是网站中元素的宽度可以根据设备的不同自动适应,从而保证在不同的屏幕上显示效果良好。常见的自适应宽度方法包括CSS3中的媒体查询和弹性布局等。 使用媒体查询实现自适应宽度 媒体查询是…

    css 2023年6月10日
    00
  • JS模拟并美化的表单控件完整实例

    下面是JS模拟并美化的表单控件完整实例的攻略: 1. 了解需求 在开始编码之前,我们需要了解实现的需求,明确要完成以下任务: 模拟select、radio、checkbox等常见的表单控件,实现其基本功能 所有表单控件需要有美观的样式效果 2. 分析思路 在了解需求之后,我们需要进一步分析如何实现。 对于select控件的模拟,我们可以利用HTML的原生se…

    css 2023年6月10日
    00
  • CSS实现HTML元素透明的方法小结

    请看下面我整理的“CSS实现HTML元素透明的方法小结”攻略。 CSS实现HTML元素透明的方法小结 1. opacity属性 设置元素透明度最原始、最简单的方法,就是使用opacity属性。此属性的值必须在0~1之间,数值越小,元素越透明。 示例1:设置一个文字透明度为0.5的元素 <p style="opacity: 0.5;"…

    css 2023年6月10日
    00
  • 使用element-ui实现行合并过程

    下面是使用element-ui实现行合并过程的完整攻略: 1. 使用el-table中的slot-scope来实现行合并 Element UI中的el-table组件支持使用slot-scope来自定义表格的各种元素,例如:表头、表格行、单元格等。结合使用v-if指令、v-for指令和javascript语句,我们可以很容易地实现行合并的功能。 下面是一个实…

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