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的一些必记属性整理

    下面是对于CSS的一些必记属性整理的详细讲解: CSS的一些必记属性整理 1. display 属性 display属性常用于控制元素的显示方式。具体的取值有: none:元素不显示,同时占用的空间也不保留 block:元素被渲染为块级元素,通常会独占一行,可以在其中设置宽度、高度、内外边距等属性 inline:元素被渲染为行内元素,通常不支持设置宽度、高度…

    css 2023年6月9日
    00
  • Bootstrap标签页(Tab)插件切换echarts不显示问题的解决

    下面是“Bootstrap标签页(Tab)插件切换echarts不显示问题的解决”的完整攻略: 问题描述 在使用Bootstrap标签页(Tab)插件切换echarts图表时,切换后的图表不显示。查询代码后发现,echarts图表在第一个tab中是正常显示的,但是在切换到第二个tab后却不显示了。 解决方案 Step 1 确认问题 首先,我们需要确认此问题是…

    css 2023年6月11日
    00
  • div+pre标签的组合实现文本原格式显示与自动换行

    文本的原格式显示和自动换行是网页设计中非常常见的需求,可以使用div加pre标签的组合来实现。 步骤一:创建div标签,并设置样式 首先要创建一个div标签作为容器,并且设置样式。我们可以使用CSS设置它的width属性为100%,这会让div标签充满整个父容器的宽度。 <div style="width: 100%;"> &…

    css 2023年6月9日
    00
  • css选择器中有小数点的标签获取方法

    获取CSS选择器中有小数点的标签的方法,是使用CSS class选择器。CSS class选择器指的是以.开头的选择器,后面跟类名。 例如,我们有如下HTML代码: <div class="box">这是一个盒子</div> <p class="text">这是一段文字</p&…

    css 2023年6月9日
    00
  • 浅谈CSS中overflow清除浮动的用法

    以下是关于 “浅谈CSS中overflow清除浮动的用法” 的详细攻略。 什么是浮动 在CSS中,浮动指将元素从其正常位置移动,并沿着其父元素的左侧或右侧浮动。这个概念是为了能够将文本和图片等元素组合在一起,以形成复杂的布局。 浮动元素带来的问题 当一个元素浮动时,其它元素可能会出现在它的下方,这时候就需要通过清除浮动来确保页面布局不混乱。 如何清除浮动 空…

    css 2023年6月10日
    00
  • js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合

    让我来详细地讲解一下“js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合”的完整攻略。 一、使DIV始终居于屏幕中间 实现方法 <div class="center"> <p>元素始终居于屏幕中央</p> </div> .center { position: fixed;…

    css 2023年6月10日
    00
  • ie9崩溃现象当js设置tr元素样式为display:none

    问题描述: 在使用ie9浏览器浏览网页时,当使用JS代码修改某个tr元素的display属性时,页面会出现崩溃现象。 原因分析: IE9浏览器中存在一个叫做“样式未提前计算的bug”,当某个元素的display属性被修改为none时,该元素的后代元素的样式计算不会被首先执行,导致后代元素的样式计算出现异常,最终导致浏览器崩溃。 攻略: 针对这个问题,我们可以…

    css 2023年6月10日
    00
  • CSS中@support实现渐进式网页设计实例代码

    CSS中的@supports规则可以用于探测CSS代码在当前浏览器版本中是否可用。它可以实现渐进式网页设计,即对不同的浏览器或者版本提供不同的CSS样式。下面是一个@supports的渐进式网页设计实例代码的完整攻略: 步骤1:在头部引入CSS代码 首先,在标签下引入CSS代码。假设我们要为三个CSS属性分别设置不同的渐变颜色(gradient-color-…

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