首页 > 其他分享 >白骑士的CSS教学进阶篇之变形与过渡 3.1.3 动画

白骑士的CSS教学进阶篇之变形与过渡 3.1.3 动画

时间:2024-08-28 09:55:00浏览次数:10  
标签:动画 示例 ease keyframes 进阶篇 animation fadeIn 3.1 CSS

        CSS 动画允许开发者在网页中创建复杂的动态效果,而不需要依赖 JavaScript。通过使用 ‘@keyframes‘ 规则定义动画的关键帧,以及 ‘animation‘ 属性来控制动画的行为和效果,你可以实现从简单到复杂的各种动画效果。以下内容将详细讲解 CSS 动画的各个部分,包括 ‘@keyframes‘、‘animation‘ 属性的各个属性(‘name‘、‘duration‘、‘timing-function‘、‘delay‘、‘iteration-count‘、‘direction‘)。

‘@keyframes‘ 规则

        ‘@keyframes‘ 规则用于定义 CSS 动画的关键帧。关键帧定义了动画的不同阶段,每个阶段指定了元素的样式。动画会根据这些关键帧的定义在不同时间点过渡到不同的样式。

        语法:

@keyframes animation-name {
  from {
    /* 起始状态 */
  }

  to {
    /* 结束状态 */
  }
}

        示例:

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

        效果:

  • 定义了一个 ‘fadeIn‘ 动画,从完全透明过渡到完全不透明。

‘animation‘ 属性

        ‘animation‘ 属性用于指定动画的名称、持续时间、时间函数、延迟、重复次数和方向。可以通过简写方式将这些属性合并在一起使用,也可以分别设置。

        语法:

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

动画名称(name)

        ‘name‘ 指定要使用的动画的名称,这个名称需要与 ‘@keyframes‘ 规则中定义的名称相匹配。

        示例:

.box {
  animation: fadeIn 2s ease-in;
}

        效果:

  • 应用了之前定义的 ‘fadeIn‘ 动画,持续时间为 2 秒,时间函数为 ‘ease-in‘。

持续时间(duration)

        ‘duration‘ 指定动画的总持续时间。单位可以是秒(‘s‘)或毫秒(‘ms‘)。

        示例:

.box {
  animation: fadeIn 3s;
}

        效果:

  • 动画将持续 3 秒钟完成。

时间函数(timing-function)

        ‘timing-function‘ 定义了动画的时间曲线,决定了动画的加速和减速效果。常见的时间函数有:

  • ‘linear‘:动画以均匀的速度进行。
  • ‘ease‘:动画开始和结束时较慢,中间加速。
  • ‘ease-in‘:动画开始时较慢,结束时加速。
  • ‘ease-out‘:动画开始时加速,结束时较慢。
  • ‘ease-in-out‘:动画开始和结束时较慢,中间加速。
  • ‘cubic-bezier(n, n, n, n)‘:自定义贝塞尔曲线,提供更多控制。

        示例:

.box {
  animation: fadeIn 2s ease-in-out;
}

        效果:

  • 动画会以 ‘ease-in-out‘ 时间函数平滑过渡,开始和结束时较慢,中间加速。

延迟时间(delay)

        ‘delay‘ 指定动画开始前的延迟时间,单位为秒(‘s‘)或毫秒(‘ms‘)。

        示例:

.box {
  animation: fadeIn 2s ease 1s;
}

        效果:

  • 动画将在 1 秒钟后开始,持续时间为 2 秒,时间函数为 ‘ease‘。

重复次数(iteration-count)

        ‘iteration-count‘ 定义动画的重复次数,可以是一个正整数或者 ‘infinite‘(无限次)。

        示例:

.box {
  animation: fadeIn 2s ease 0s 3;
}

        效果:

  • 动画将重复 3 次。

动画方向(direction)

        ‘direction‘ 定义动画的播放方向。常见的值有:

  • ‘normal‘:正常播放动画(默认值)。
  • ‘reverse‘:反向播放动画。
  • ‘alternate‘:动画在正向播放和反向播放之间交替。
  • ‘alternate-reverse‘:动画在反向播放和正向播放之间交替。

        示例:

.box {
  animation: fadeIn 2s ease 0s infinite alternate;
}

        效果:

  • 动画将无限次循环播放,并在正向和反向之间交替。

综合示例

        下面是一个综合使用了 ‘@keyframes‘ 和 ‘animation‘ 属性的示例:

        HTML:

<div class="box"></div>

        CSS:

@keyframes bounce {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-100px);
  }

  100% {
    transform: translateY(0);
  }
}

.box {
  width: 100px;
  height: 100px;
  background-color: red;
  animation: bounce 2s ease-in-out infinite;
}

        效果:

  • ‘.box‘ 元素会在 2 秒钟内上下弹跳一次,使用 ‘ease-in-out‘ 时间函数平滑过渡,并无限次循环播放。

总结

        CSS 动画为网页设计提供了丰富的动态效果,可以通过 ‘@keyframes‘ 定义动画的关键帧,然后通过 ‘animation‘ 属性控制动画的各种属性,如名称、持续时间、时间函数、延迟、重复次数和方向。掌握这些动画技术,将使你能够创建更加生动、富有表现力的用户界面。通过适当的动画效果,可以提升用户体验,吸引用户注意并增加互动性。

标签:动画,示例,ease,keyframes,进阶篇,animation,fadeIn,3.1,CSS
From: https://blog.csdn.net/JeremyTC/article/details/141353200

相关文章

  • 白骑士的CSS教学进阶篇之变形与过渡 3.1.2 过渡效果
            在CSS中,过渡效果(transition)允许你在属性值发生变化时平滑过渡,使变更过程更加自然和动感。使用过渡效果可以改善用户体验,使页面在变化时看起来更加流畅。通过设置‘transition‘属性,你可以控制过渡的属性、持续时间、时间函数和延迟等。这一节将详细介绍‘......
  • CSS调试 (1)
    https://www.bilibili.com/video/BV1KM4y1G7EF/内容转自【浏览器调试工具精讲】ChromeDevTools精讲,前端必看!     橙色:外边距蓝色:本体。 绿色:内边距。  CTRL+F可以搜索 输入某一个string或者css,section#someidxpath: //section/p  ......
  • 未来浏览器的守护者:CSS @supports 规则全解析
    标题:未来浏览器的守护者:CSS@supports规则全解析摘要随着CSS语言的不断发展,新特性层出不穷,但并非所有浏览器都同步支持这些特性。@supports规则是CSS中用于检测浏览器是否支持特定CSS特性的一种条件性规则。本文将详细介绍@supports规则的使用方法,并通过代码示例展示如何......
  • CSS2完结(结合前面)
    CSS2基础浮动概念:早期:实现文字环绕图片或者文字环绕文字(通过伪元素选择器实现)的效果现在:主流的布局方式之一特点:不管什么类型的元素,都按照文字环绕图片的效果实现脱离文档流,浮动起来,元素大小默认被内容撑开margin和其他内容区以外的内容可以完美设置浮动后不会......
  • css文字下划线动画
    <!DOCTYPEhtml><html><head><style>.titlespan{background:linear-gradient(toright,#ec6b5f,#61c554)no-repeat;background-size:02px;background-pos......
  • 目录PyCharm Community Edition、python3.11、pythonProject之间的关系
    PyCharmCommunityEdition类型:PyCharmCommunityEdition是由JetBrains公司提供的免费、开源的集成开发环境(IDE)。用途:它专门为Python开发设计,提供了代码编辑、运行、调试、测试等功能。特点:包括智能代码补全、代码分析、图形化界面设计、版本控制集成等高级功能。Pyt......
  • 进阶篇:6)量产准备
    本章目的:了解哪些流程是为了量产做准备的。 1.量产的准备很多了流程的节点就是为了量产做准备的,但单独看样品却是没什么作用。就比如开模的尺寸检测,就应该包括FAI和CPK。如图:FAI是为了证明:这是一个正确的零件/产品。CPK是为了证明:后续大量生产,也可以保证质量稳定。只有......
  • [SCSS] Media breakpoint util mixin
    $breakpoints:('phone':(320px,480px),'pad':(481px,768px),'notebook':(769px,1024px),'desktop':(1025px,1200px),'tv':1201px,)@mixinrespond-to($breakname){$bp:map-g......
  • Python 3.11 从入门到实战1(环境准备)
            本篇文章是python3.11的学习开篇,我们的目标是:通过这一套资料学习下来,获得python基础学习与实例、实践相结合,使我们完全掌握python。并做到独立完成项目开发的能力。    今天的谈论的比较简单,也是后续学习的基础。python安装和工具pycharm的安装。pyth......
  • CSS的过渡和2D效果,滤镜效果
    浏览器私有属性前缀CSS3的浏览器私有属性前缀是一个浏览器生产商经常使用的一种方式。它暗示该CSS属性或规则尚未成为W3C标准的一部分。浏览器私有属性前缀是为了解决浏览器的兼容问题,当一个属性成为标准,并且被Firefox、Chrome等浏览器的最新版普遍兼容的时候就不再使用了常......