返回介绍

Transition

发布于 2019-12-27 00:37:38 字数 5046 浏览 954 评论 0 收藏 0

用于一个元素在不同状态之间切换的时候定义不同的过渡效果,创建过渡动画。(在小程序端需要在 View 增加 animation 属性)

安装

$ npm install universal-transition --save

方法

transition(domNode, styles, options, callback)

参数

成员类型描述必选默认值支持
domNodeDOMNode指定元素,小程序中传入 null,详细见下文[小程序使用说明]-
stylesObject详细见下文-
optionsObject动画参数,详细见下文-
callbackFunction动画完成后触发,小程序不支持-

说明:下面列出属性为各个端均支持,未列出属性不保证各个端兼容性。

styles 为 object 类型,属性如下:

成员类型描述默认值
styles.backgroundColorColor背景色-
styles.heightNumber长度值-
styles.widthNumber长度值-
styles.opacityNumber透明度 0-1-
styles.transformString变换类型,具体见下表-

styles.transform 支持的属性如下:

成员类型描述默认值
translate、translateX、translateYNumber | Percentage指定元素移动到的位置0
rotate、rotateX、rotateYAngle指定元素偏转的角度0
scale、scaleX、scaleYNumber指定放大缩小元素的倍数1

options 为 object 类型,属性如下:

成员类型描述默认值
options.timingFunctionString动画的效果,有效值有:linear, ease, ease-in, ease-in-out, ease-out (未列出的值,可能存在兼容问题)ease
options.delayNumber动画延迟时间0
options.durationNumber动画持续时间0

返回

小程序返回 transitionInfo 对象,使用时调用 transitionInfo.export() 得到 View 标签的 animation 属性, 其他端返回 undefined

说明:

因为小程序无法提供DOMNode,并且动画应用方式也有差异。所以小程序需要通过export()方法获取动画内容,然后手动绑定到元素。

示例

<view animation="{{transitionInfo}}"></view>
import transition from 'universal-transition';
import findDOMNode from 'rax-find-dom-node';
import { isMiniApp } from 'universal-env';

const transitionInfo = transition(isMiniApp ? null : findDOMNode(animationRef.current), {
  transform: 'translate(10px, 20px) scale(1.5, 1.5) rotate(90deg)',
  opacity: '0.5'
}, {
  timingFunction: 'ease',
  delay: 0,
  duration: 1000
}, function() {
  console.log('animation end');
});

// 小程序中
this.setState({
  transitionInfo: transitionInfo.export()
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文