CSS:动画与过渡

2023-12-29

我了解如何执行 CSS3过渡 https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions and 动画 https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Animations/Using_CSS_animations。不清楚的是何时使用哪个。

例如,如果我想让球弹起,很明显动画是最佳选择。我可以提供关键帧,浏览器将执行中间帧,这样我就会有一个很好的动画。

然而,在某些情况下,无论哪种方式都可以实现上述效果。一个简单而常见的例子是实现 Facebook 风格的滑动抽屉菜单:

这种效果可以通过像这样的转换来实现:

.sf-page {
    transition: transform .2s ease-out;
}

.sf-page.out {
    transform: translateX(240px);
}

http://jsfiddle.net/NwEGz/ http://jsfiddle.net/NwEGz/

或者,通过像这样的动画:

.sf-page {
    animation-duration: .4s;
    transition-timing-function: ease-out;
}

.sf-page.in {
    animation-name: sf-slidein;
    transform: translate3d(0, 0, 0);
}

.sf-page.out {
    animation-name: sf-slideout;
    transform: translateX(240px);
}

@keyframes sf-slideout {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(240px, 0, 0); }
}
 
@keyframes sf-slidein {
    from { transform: translate3d(240px, 0, 0); }
    to { transform: translate3d(0, 0, 0); }
}

http://jsfiddle.net/4Z5Mr/ http://jsfiddle.net/4Z5Mr/

HTML 看起来像这样:

<div class="sf-container">
    <div class="sf-page in" id="content-container">
        <button type="button">Click Me</button>
    </div>
    <div class="sf-drawer">
    </div>
</div>

并且,附带的 jQuery:

$("#content-container").click(function(){
    $("#content-container").toggleClass("out");
    // below is only required for css animation route
    $("#content-container").toggleClass("in");
});

我想了解的是这些方法的优点和缺点是什么。

  1. 一个明显的区别是动画需要更多的代码。
  2. 动画提供了更好的灵活性。我可以有不同的滑出和滑入动画。
  3. 关于性能有什么可以说的吗?两者都利用硬件加速吗?
  4. 哪一个更现代,未来的发展方向是什么?

看起来您已经掌握了如何执行这些操作,但不知道何时执行这些操作。

一个过渡是一部动画,只是在两个不同状态(即开始状态和结束状态)之间执行的操作。就像抽屉菜单一样,开始状态可以是打开的,结束状态可以是关闭的,反之亦然。

如果你想执行某件事does not特别涉及开始状态和结束状态,或者您需要对过渡中的关键帧进行更细粒度的控制,那么您必须使用动画。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS:动画与过渡 的相关文章

  • 将 CSS 生成的三角形拆分为 2 个水平不同的相同颜色

    正如您应该能够通过此代码看到的那样fiddle http jsfiddle net Xh36r 1 以及下面 我希望能够分割显示在第二个 div 顶部的 CSS 生成的三角形水平均等在 之间orange and green使用的颜色 现在它
  • jQuery 或 Javascript - 如何禁用窗口滚动而不溢出:隐藏;

    您好 是否可以在不使用的情况下禁用窗口滚动overflow hidden 当我悬停一个元素时 我试过 chat content on mouseenter function document scroll function e if e h
  • Bootstrap 中的旋转字形 / Font Awesome

    我试图让引导站点中的字形在悬停时旋转 除了更改颜色之外 这是我的尝试 http jsfiddle net young greedo17 88g5P http jsfiddle net young greedo17 88g5P 使用此代码 d
  • * 到底有多慢?

    大家都表示 选择器非常慢 但它到底有多慢呢 我总是试图避免它 但有时它非常有用 例如 h1 margin top 1em 简单来说 通用选择器 速度只与页面上的元素一样慢 Since 从右到左匹配浏览器获取每个元素并将其与所有候选规则进行匹
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • 使用 CSS 网格布局使网格项内的元素高度相等

    我在长度超过 4 的 div 中有一系列文章 没有任何舍入行标签 我需要将其表示为每行 3 篇文章 列 的表格 可能包含display grid 每篇文章都有页眉 章节和页脚 如何在每行文章内实现每个标题的等高 每个部分的等高以及与文章底部
  • 如何使整个跨度落入新行?

    这个片段显示了我想要的 http jsfiddle net 945Df 3 http jsfiddle net 945Df 3 div class sup strong a href Rosario Santa Fe Argentina a
  • 将特定字形与网络字体一起使用

    使用网络字体 我想使用字体功能设置 CSS 中的选项以及跨度类HTML 中 以便使用字体集中的特定替代字形 我需要以正确的语法使用哪些值 GID Unicode 才能定位特定的目标glyph内glyph备择方案 这些功能使用 OpenTyp
  • 如何简化这个 LESS CSS Box-shadow mixin? (带有“方向”的多个阴影)

    如何减少这段代码 可能使用循环 以拥有一个接受方向和数字的 函数 dir 想要的 方向 number 我需要多少次影子 这里是10次 color 阴影的颜色 Example 可以工作 但不是很容易使用 perspective box dir
  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • iPad - 无法在框架内滚动

    我无法滚动 iPad Safari 中框架内调用的 pdf 我已经尝试过两件事 2 指滚动 使用对象 嵌入代替框架 但这是行不通的 事实上我已经尝试了很多东西 溢出 高度等等 请帮我 先感谢您 根据这篇文章http support appl
  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何强制折断不可折断的字符串?

    我有一个根据数据库中包含的数据生成的 HTML 页面 数据库有时包含浏览器无法分解的长字符串 因为这些字符串不包含可分解的字符 空格 点 逗号等 有没有办法使用 html css 甚至 javascript 来解决这个问题 看到这个link
  • R Shinydashboard 自定义 CSS 到 valueBox

    我一直在尝试将 valueBox 的颜色更改为自定义颜色 超出 validColors 中可用的颜色 但一直无法这样做 我知道有一种方法可以使用标签来包含自定义 CSS 但是我无法将它们放在正确的位置 ui lt dashboardPage
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 如何防止弹性项目高度因其内容而溢出[重复]

    这个问题在这里已经有答案了 我刚刚开始学习 Flex 到目前为止我印象深刻 但是 我对包含页眉 页脚和三列的全页应用程序遇到了问题 第一列包含一个项目列表 由于我无法为其父级设置固定高度 因此每次列表增长时 它都会将页脚向下推 这是一个带有
  • Twitter bootstrap 3表单水平和单行多个输入列

    我需要将多列输入放在单行中 如下所示 我通过将多个输入分组为一个来做到这一点form group 但是这样我不能使用has error class div class form group div

随机推荐

  • 如何动态包含导航属性?

    我有一个小问题 假设有一个这样的实体 public class FirstEntity public int ID get set public string Prop1 get set public string Prop2 get se
  • 为什么 SOAP 参数的顺序在 PHP SOAP 中很重要,以及如何修复它?

    一条评论 http www php net manual en soapclient soapcall php 98348PHP 手册上指出 如果您使用此方法 请记住 参数数组需要是 传入的顺序是 与 SOAP 端点相同的顺序 期望 例如
  • 使用 UpdatePanel 从内容页面更新 MasterPage 上的标签,无需完整回发

    对于这种情况有解决方案吗 我有一个内容页面 其中包含一个 UpdatePanel 和一个组合框 当组合框值更改时 我想更改主页中的标签 所以 对我来说主要的问题是我不想在每个组合框值发生变化时进行完整的回发 有什么技巧可以克服完全回发吗 提
  • 如何在 Backbone.js 中正确使用 HTML5 PushState?

    我正在使用 coenraets 员工名录 http coenraets org directory 作为我的 Backbone 应用程序的起点 我想做的第一件事是更改路由以使用 HTML5 PushState 而不是 hash hash b
  • 运行 Xcode 控制台 [重复]

    这个问题在这里已经有答案了 我想用 Instruments 运行我的 iphone 应用程序来检查内存使用情况 但我也希望能够在运行时看到我的控制台输出 目前没有办法做到这一点吗 您似乎只能在 XCode 本身中启动 Instruments
  • Java程序运行一段时间后变慢

    我有一个java程序 它是一个典型的机器学习算法 通过一些方程更新一些参数的值 for int iter 0 iter lt 1000 iter 1 Create many temporary variables and do some c
  • 用于重载 UI 的 Vaadin 替代方案

    目前我正在基于以下内容编写Web应用程序Vaadin http vaadin com 我对学习周期以及简单的 UI 设计方式感到非常满意 Vaadin 的总体优点是 面向 Java 用户的 本机 UI 编程 组件层次结构 事件侦听器 拖放
  • 将选择设置为范围

    有人可以暗示我在这里可能做错了什么吗 现在我正在有效地尝试执行 Ctrl A 命令来对 vba 中的数据块进行全选 然后我希望将该选择保存为一个范围 以便稍后使用 Dim rngAdData As Range Range A1 Select
  • flutter dart JsonSerialized 带有继承类

    我有以下两个类 其中一个类是从另一个类扩展的 如下所示 JsonSerializable nullable true class Response final String responseCode final String respons
  • qemu-x86_64:无法打开“/lib64/ld-linux-x86-64.so.2”:没有这样的文件或目录

    我在 M1 MacOS 上有一个 Rancher Desktop docker 当我尝试在 dockerfile 下构建时 我收到如下错误 这是我尝试构建图像的命令docker build t te grafana dashboards t
  • 启用 Java 允许过期证书

    是否有任何命令行标志可以使 Java 允许过期的证书 现在 由于证书已过期 我收到以下异常 Caused by java security cert CertificateExpiredException NotAfter PAST DAT
  • 在 WPF 中将整数转换为颜色

    如何在WPF中将整数转换为颜色 例如 我想将 16711935 转换为颜色 如何在 Windows 窗体 WPF 中执行如下操作 myControl Background Color FromArgb myColorInt Use the
  • 在指针列表中查找一个项目

    我试图了解如何使用 std find 在 C 中的指针列表中查找项目 如果我有例如 std list
  • UIPickerView 禁用行选择

    我想禁用我的某些行的选择UIPickerView 就像在倒计时器中一样 您尝试选择 0 它不会让您选择 并且会滑回到 1 或者您如何限制倒数计时器中的日期Date Picker 如何禁用 a 中的行UIPickerView In UIPic
  • Symfony 如何删除文件

    为什么我不能在 Symfony 中使用 unlink 我已经尝试过这个 unlink Applications XAMPP xamppfiles htdocs symfonydev web account assets data suppl
  • 在 xaml 上设置 GroupStyle 内部样式

    我正在尝试为 ContextMenu 设置默认样式 并且我想在样式内设置默认 GroupStyle ContextMenu 像这样的事情
  • Qt C++ 在 GUI 线程之外显示图像(Boost 线程)

    我正在开发一个C 库 使用VS2015通过Qt实现其接口 在图书馆方面 3增强线程连续加载 3 个文件夹中的图像 我正在尝试以 3 种不同的方式显示这些图像QLabel 或同等学历QWidgets 所以线程体由这个功能组成 特别是通过利用设
  • Windows 上的 Makefile 干净

    我现在正在学习如何使用 makefile 我制作了以下 makefile 我在 Windows 上使用 Visual Studio 命令行编译器 CC cl CFLAG EHsc test database exe composer obj
  • 如何从 LocalDate 和 LocalDateTime 中提取纪元?

    如何提取纪元值Long来自实例LocalDateTime or LocalDate 我试过了 以下 但它给了我其他结果 LocalDateTime time LocalDateTime parse 04 02 2014 19 51 01 D
  • CSS:动画与过渡

    我了解如何执行 CSS3过渡 https developer mozilla org en US docs Web CSS CSS Transitions Using CSS transitions and 动画 https develop