1. 动画
  2. 过渡计时函数

Quick reference

Class
Properties
ease-lineartransition-timing-function: linear;
ease-intransition-timing-function: cubic-bezier(0.4, 0, 1, 1);
ease-outtransition-timing-function: cubic-bezier(0, 0, 0.2, 1);
ease-in-outtransition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);

基础用法

控制缓和曲线

使用 ease-* 实用程序来控制元素的缓和曲线。

Hover each button to see the expected behaviour

ease-in

ease-out

ease-in-out

<button class="ease-in duration-300 ...">Button A</button>
<button class="ease-out duration-300 ...">Button B</button>
<button class="ease-in-out duration-300 ...">Button C</button>

条件应用

悬停、聚焦和其他状态

Tailwind 允许您使用变体修饰符有条件地在不同状态下应用实用程序类。例如,使用 hover:ease-in 来仅 在 hover应用 ease-in.

<div class="transition duration-150 ease-out hover:ease-in">
  <!-- ... -->
</div>

详细了解, 请参考 Hover, Focus, & Other States 文档.

断点和媒体查询

您还可以使用变体修饰符来定位媒体查询,例如响应式断点、暗模式、首选减少运动等。例如, 使用 md:ease-in 来应用 ease-in 程序,适用于中等屏幕尺寸及以上。

<div class="transition duration-150 ease-out md:ease-in">
  <!-- ... -->
</div>

进一步了解,请参考 响应式设计, 暗黑模式 媒体查询.


使用自定义值

定制你的主题

默认情况下,Tailwind 提供四个通用的 transition-timing-function 实用程序。您可以通过在 tailwind.config.js 文件中编辑 theme.transitionTimingFunctiontheme.extend.transitionTimingFunction 来自定义这些值。

tailwind.config.js
module.exports = {
  theme: {
    extend: {
      transitionTimingFunction: {
        'in-expo': 'cubic-bezier(0.95, 0.05, 0.795, 0.035)',
        'out-expo': 'cubic-bezier(0.19, 1, 0.22, 1)',
      }
    }
  }
}

theme customization 文档中了解有关自定义默认主题的更多信息。

任意值

如果您需要使用一次性的 transition-timing-function值,而该值没有必要包含在主题中,请使用方括号动态生成属性,使用任意值。

<div class="ease-[cubic-bezier(0.95,0.05,0.795,0.035)]">
  <!-- ... -->
</div>

进一步了解,请参考 任意值 文档.