返回介绍

Animation

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

实现动画,通过 weex-bindingx 环境允许的前提下优先使用 bindingx,不满足环境要求则使用 universal-transition 调用Weex或浏览器或小程序提供的动画API实现。

支持

安装

$ npm install universal-animation --save

方法

animate(config, callback)

参数

成员类型描述必选默认值支持
config.propsArray详见下文描述✔️-
callbackfunction动画完成后触发-

config.props数组成员内容:

成员类型描述必选默认值支持
elementDOMNode|stringDOM 元素, 小程序环境为一个string 类型的标志符,详细见export()✔️-
propertystring动画属性,详见bindingx properties support✔️-
startvalue初始值-
endvalue结束值✔️-
durationnumber动画持续时间0
delaynumber动画延迟时间0
easingstring动画属性,详见bindingx easing supporteaseOutSine

export()

支持

 

因为小程序无法提供DOMNode,并且动画应用方式也有差异。所以小程序中使用该方法获取动画内容,然后手动绑定到元素。

参数

返回

成员类型描述
resultObject返回的对象
result[key]Arraykey 为 config.props[n].element,value 为小程序动画内容,将该值绑定到元素

示例

<View animation={animationInfo1} style={
	  background: 'red',
	  height: '100rpx',
	  width: '100rpx'
}></View>
<View animation={animationInfo2} style={
	  background: 'yellow',
	  height: '100rpx',
	  width: '100rpx'
}></View>
import animate from 'universal-animation';
import findDOMNode from 'rax-find-dom-node';
import { isMiniApp } from 'universal-env';

const animationResult = animate(
  {
    props: [
      {
        element: isMiniApp ? 'view1' : findDOMNode(this.refs.block1),
        property: 'transform.translateX',
        easing: 'easeOutSine',
        duration: 200,
        start: 0,
        end: 200,
        delay: 100,
      },
      {
        element: isMiniApp ? 'view2' : findDOMNode(this.refs.block2),
        property: 'opacity',
        easing: 'easeOutSine',
        duration: 200,
        end: 0.2,
        delay: 100,
      },
    ],
  },
  () => {
    console.log('timing end');
  },
).export();

if (isMiniApp) {
  this.setState({
    animationInfo1: animationResult.view1,
    animationInfo2: animationResult.view2,
  });
}

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

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

发布评论

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