CSS 过渡和动画

简介: CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术

CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术,以下是它们的详细介绍:

CSS过渡

  • 定义:CSS过渡是一种在元素的属性值发生变化时,平滑地从一个状态过渡到另一个状态的效果,它可以让用户界面的交互更加自然和流畅。
  • 常用属性
    • transition-property:指定要过渡的CSS属性,如width(宽度)、height(高度)、color(颜色)等。例如,transition-property: width;表示只对元素的宽度变化进行过渡。
    • transition-duration:设置过渡效果持续的时间,单位为秒(s)或毫秒(ms)。如transition-duration: 0.5s;表示过渡效果将持续0.5秒。
    • transition-timing-function:规定过渡效果的时间曲线,常见的值有ease(默认值,慢速开始,然后变快,最后慢速结束)、linear(匀速过渡)、ease-in(慢速开始)、ease-out(慢速结束)、ease-in-out(慢速开始和结束)等。
    • transition-delay:设置过渡效果开始前的延迟时间,单位同样是秒或毫秒。例如,transition-delay: 0.2s;表示在触发过渡后,延迟0.2秒再开始过渡效果。
  • 示例
    ```css
    .box {
    width: 100px;
    height: 100px;
    background-color: blue;
    transition: width 0.5s ease-in-out, background-color 0.3s linear;
    }

.box:hover {
width: 200px;
background-color: red;
}

在上述代码中,当鼠标悬停在`.box`元素上时,宽度会在0.5秒内以`ease-in-out`的时间曲线从100px过渡到200px,背景颜色会在0.3秒内匀速从蓝色过渡到红色。

### CSS动画
- **定义**:CSS动画比过渡更强大和灵活,它可以通过关键帧来定义一系列状态,从而实现更复杂的动态效果,能够创建从一个样式到另一个样式的多个过渡阶段。
- **常用属性**
    - `animation-name`:指定要应用的动画名称,与`@keyframes`规则中的名称相对应。
    - `animation-duration`:设置动画完成一个周期所需要的时间,单位为秒或毫秒。
    - `animation-timing-function`:与过渡中的同名属性类似,规定动画的时间曲线。
    - `animation-delay`:设置动画开始前的延迟时间。
    - `animation-iteration-count`:指定动画的播放次数,可以是具体的数字,也可以是`infinite`(无限循环)。
    - `animation-direction`:规定动画是否应该反向播放,取值有`normal`(正常播放)、`reverse`(反向播放)、`alternate`(交替播放,即正向播放一次后再反向播放一次,如此循环)、`alternate-reverse`(与`alternate`相反,先反向播放)。
- **关键帧`@keyframes`**:用于定义动画的具体步骤和状态。例如:
```css
@keyframes slideIn {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

上述代码定义了一个名为slideIn的动画,从元素向左偏移自身宽度100%的位置开始,到回到初始位置结束。

  • 示例
    .box {
         
    width: 100px;
    height: 100px;
    background-color: green;
    animation: slideIn 2s ease-in-out 0.5s infinite alternate;
    }
    
    在这个例子中,.box元素应用了slideIn动画,动画持续2秒,以ease-in-out的时间曲线播放,延迟0.5秒开始,无限循环,并且每次交替播放。

过渡和动画的区别

  • 触发方式:过渡通常是由元素的状态变化(如hoverfocus等)或JavaScript动态修改属性值触发;动画则可以在页面加载时自动播放,也可以通过JavaScript触发。
  • 控制粒度:过渡只能定义起始和结束状态,中间的过渡效果由浏览器自动计算;动画可以通过关键帧精确控制每个阶段的状态,实现更复杂的动画效果。
  • 循环性:过渡一般只在状态变化时执行一次;动画可以通过设置animation-iteration-count属性轻松实现循环播放。
相关文章
|
4月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
29天前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
78 1
|
机器学习/深度学习 前端开发 JavaScript
CSS动画知识点
CSS动画知识点
|
10月前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
172 34
|
12月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
342 63
|
12月前
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
|
12月前
|
Web App开发 前端开发 JavaScript
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
如何在不牺牲动画效果的前提下,优化 CSS3 动画的性能?
549 58
|
10月前
jQuery+CSS3实现404背景游戏动画源码
jQuery+CSS3实现404背景游戏动画源码
144 22
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
305 58
|
12月前
纯css3实现的百分比渐变进度条加载动画源码
纯css3实现的百分比渐变进度条加载动画特效源码
199 31

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
  • 3
    React 中如何安装与使用 Tailwind CSS
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
  • 10
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
  • 1
    React 中如何安装与使用 Tailwind CSS
    189
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    78
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    122
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    106
  • 5
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    73
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    199
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    202
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    104
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    58
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    98