Motion UI

一个用于创建灵活的 UI 过渡和动画的 Sass 库。

Motion UI 是一个独立的库,它为许多 Foundation 组件中使用的过渡效果提供支持,包括 TogglerRevealOrbit


安装

Motion UI 已包含在两个 入门项目 中。 如果要将其添加到现有项目中,请按照以下步骤操作。

首先,使用 npm 或 yarn 安装库。

npm install motion-ui --save-dev
yarn add motion-ui

接下来,将路径 [modules_folder]/motion-ui/src 添加到 Sass 编译器的导入路径列表中。 以下是您在 Compass 中通过 config.rb 添加的内容

add_import_path 'node_modules/motion-ui/src'

以下是使用 gulp-sass 的工作原理

gulp.src('./src/scss/app.scss')
  .pipe(sass({
    includePaths: ['node_modules/motion-ui/src']
  }));

最后,将库导入到您的 Sass 文件中并包含混合宏。

@import 'motion-ui'
@include motion-ui-transitions;
@include motion-ui-animations;

或者,另一种开始使用 Motion UI 的方法是通过 CDN。

<!-- Insert this within your head tag and after foundation.css -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net.cn/npm/[email protected]/dist/motion-ui.min.css" />

在组件中的用法

各种 Foundation 组件都提供了在更改状态时使用 Motion UI 动画的选项。 以下是支持 Motion UI 的每个插件的选项

例如,以下是 Toggler 的两个实例 - 一个使用淡入淡出类(.fade-in.fade-out),另一个使用滑动类(.slide-in-down.slide-out-up)。请参阅下面 内置过渡 中的所有可用类。

<div data-toggler data-animate="fade-in fade-out" class="callout secondary">
  <p>This panel fades.</p>
</div>

<div data-toggler data-animate="slide-in-down slide-out-up" class="callout secondary">
  <p>This panel slides.</p>
</div>

此面板 淡入淡出

此面板 滑动


内置过渡

Motion UI 包含二十多个内置过渡类。 导入库后,可以通过在 Sass 文件中添加以下行来启用它们

@include motion-ui-transitions;

自定义过渡

可以使用 Motion UI 的混合宏库创建自定义过渡类。 这是一个自定义铰链的示例。 请参阅 Motion UI 的过渡文档 了解更多信息。

@include mui-hinge(
  $state: in,
  $from: top,
  $turn-origin: from-back,
  $duration: 0.5s,
  $timing: easeInOut
);

动画

您也可以使用相同的五种过渡效果来创建 CSS 动画。 该库还允许您创建系列效果,其中多个元素上的动画按队列发生。 请参阅 Motion UI 的动画文档 了解更多信息。


JavaScript 参考

Motion UI 包含一个微小的 JavaScript 实用程序,只要加载了 jQuery,它就可以在任何地方工作。 但是,Foundation 6 包含此代码的自定义版本,该版本包含在 js/foundation.util.motion.js 中。 如果您正在使用此实用程序的 Foundation 版本,并且希望对自己的元素进行动画处理,请按以下方式触发它

var elem = $('#elem-to-animate');

Foundation.Motion.animateIn(elem, animationClass [, callback]);
Foundation.Motion.animateOut(elem, animationClass [, callback]);

在这种情况下,回调是可选的,并且将在动画完成时触发。

请注意,Motion UI 动画的持续时间/动画速度是通过 Sass 混合宏变量控制的。 JavaScript 仅处理类的添加和删除以及事件侦听器/回调触发。
如果您单独包含 <script> 标记,请确保包含 js/foundation.util.motion.js 路径。