CSS 过渡动画效果

embedded/2025/1/6 7:20:20/

在 CSS 中,transition 是用来实现元素属性平滑过渡的一个属性。通过 transition,你可以指定当元素的状态发生变化时,如何在一定时间内平滑地过渡到新的样式,而不是立即跳变。

使用于侧边栏展开和收起了,左侧区域的自适应效果

transition 属性的基本语法:

transition: [property] [duration] [timing-function] [delay];

  • property:指定要应用过渡效果的 CSS 属性,可以是一个具体的属性(如 background-colorwidth 等),或者使用 all 表示所有可以过渡的属性。
  • duration:过渡的持续时间,通常使用秒(s)或毫秒(ms)表示。比如 0.5s 表示 0.5 秒。
  • timing-function:过渡的时间函数,用来控制动画的速度变化。常见的有 lineareaseease-inease-out 等。
  • delay:指定过渡效果开始前的延迟时间。可以使用秒(s)或毫秒(ms)表示。

常见的 transition 示例:

  1. 基本过渡效果: 当鼠标悬停在元素上时,背景颜色会平滑过渡:

    div {background-color: blue;transition: background-color 0.5s ease;
    }div:hover {background-color: red;
    }
     

    解释

    • 元素的背景色会从蓝色平滑过渡到红色,过渡时间是 0.5 秒,使用默认的 ease 时间函数(即开始慢,结束快)。
  2. 多个属性过渡: 同时过渡多个属性,例如宽度和颜色:

    div {width: 100px;height: 100px;background-color: blue;transition: width 0.3s, height 0.3s, background-color 0.5s;
    }div:hover {width: 200px;height: 200px;background-color: red;
    }
     

    解释

    • 当鼠标悬停时,div 的宽度和高度在 0.3 秒内过渡到新的值,而背景颜色在 0.5 秒内过渡。
  3. 延迟过渡效果: 设置延迟后才开始过渡:

    div {width: 100px;transition: width 0.5s ease 1s; /* 延迟 1 秒后开始宽度过渡 */
    }div:hover {width: 200px;
    }
     

    解释

    • 当鼠标悬停时,宽度会在 1 秒的延迟后开始过渡,持续时间为 0.5 秒。
  4. 使用 all 关键字: 同时过渡所有属性:

    div {width: 100px;height: 100px;background-color: blue;transition: all 0.5s ease;
    }div:hover {width: 200px;height: 200px;background-color: red;
    }
     

    解释

    • transition: all 0.5s ease; 表示所有可过渡的属性都会在 0.5 秒内平滑过渡,采用 ease 的时间函数。

常见的 timing-function(时间函数):

  • ease:默认的缓动效果,开始慢,接着加速,最后减速。
  • linear:匀速过渡,整个过渡过程的速度是均匀的。
  • ease-in:过渡开始时较慢,然后加速。
  • ease-out:过渡开始时较快,最后减速。
  • ease-in-out:过渡开始和结束时较慢,中间部分较快。
  • cubic-bezier(x1, y1, x2, y2):自定义的时间函数,可以通过贝塞尔曲线来控制过渡效果的速度。

总结:

transition 是 CSS 中非常实用的一个属性,它允许你在状态改变时(例如,鼠标悬停)平滑地过渡到新的样式。通过控制过渡的时间、时间函数、延迟等,你可以实现丰富的动态效果,提升用户体验。


http://www.ppmy.cn/embedded/150561.html

相关文章

android知识巩固(二.非线性数据结构)

非线性结构:是从逻辑结构上划分,其元素存在一对多或者多对多的相互关系 1.前言 在前一章中,我们了解了数据结构的基本思想,学习了部分基本的线性数据结构,了解了计算机是如何表示和存储数据的,良好的数据结构思想有助于我们写出性能优良的应用 2.目录 目录.png 3.非线性数据结构…

自学记录鸿蒙API 13:PreviewKit从文件预览到应用开发

学习了一些API 13之后,我决定研究一下 PreviewKit(文件预览服务)。这个模块可以快速预览多种文件类型,包括文本、图片、视频、音频和 PDF 等,为文件管理类应用提供了系统级支持。 这次学习不仅是技术上的积累&#xff…

数据中心基础设施管理平台:构建高效、安全与可扩展的基石

数据中心基础设施管理平台:构建高效、安全与可扩展的基石 在数字经济快速发展的背景下,数据中心作为数据存储、处理与传输的核心设施,其重要性不言而喻。为确保数据中心的稳定运行和高效管理,数据中心基础设施管理平台应运而生。…

Pytest基础01: 入门demo脚本

目录 1 Pytest接口测试 1.1 最简单版hello world 1.2 pytest.ini 2 pytest兼容unittest 3 封装pytest执行入口 1 Pytest接口测试 Pyest是一个可以用于接口测试的强大框架,开源社区也有非常多的pytest插件。 按江湖传统,学习一个新语言或者新框架&…

MyBatis如何处理延迟加载?

大家好,我是锋哥。今天分享关于【MyBatis如何处理延迟加载?】面试题。希望对大家有帮助; MyBatis如何处理延迟加载? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 MyBatis 中,延迟加载(Laz…

.net core 的算法与数据结构

Python基础 Python是一种广泛使用的高级编程语言,以其简洁易读的语法和强大的功能而闻名。自1991年发布以来,Python作为一种通用编程语言,已经在数据分析、人工智能、Web开发、自动化脚本及许多其他领域取得了巨大的成功。本文章将为您介绍P…

C++ 环境搭建 - 安装编译器、IDE选择

引言 C 是一种功能强大且广泛应用的编程语言,适用于系统编程、游戏开发、嵌入式系统等多个领域。为了开始学习和使用 C,首先需要搭建一个合适的开发环境。本文将详细介绍如何安装 C 编译器以及选择适合的集成开发环境(IDE)&#…

VSCode 插件开发实战(十三):如何添加个性化欢迎信息

前言 contributes.viewsWelcome允许开发者为 VSCode 的侧边栏视图添加个性化的欢迎信息,从而提升用户体验并引导用户更好地使用插件。通过这一功能,您可以在插件激活时展示有用的提示、链接和操作按钮,帮助用户更快速地上手和使用您的插件。…