原生前端动画
一个用于增强动画效果,包括弹簧动画曲线的 NativeScript 模块
npm i --save nativescript-animation-spring

注意:您可以使用此动画效果本身,或者获取 nativescript-effects 插件,它不仅内置了此效果,还包含许多其他方便的效果

NativeScript 弹簧动画

一个 NativeScript 插件,它将弹簧效果添加到动画中。支持的 iOS 曲线包括线性、EaseIn、EaseOut 和 EaseInOut,但不包括弹簧。目前此模块仅支持 iOS,但鉴于 Android 动画曲线包括“弹簧类型”的动画,类似的效果已经存在。

安装

$ tns plugin add nativescript-animation-spring

此命令自动安装必要的文件,并将 nativescript-animation-spring 存储为项目 package.json 文件中的依赖项。

使用方法

要使用动画弹簧模块,您必须首先 require() 它。在 require() 模块后,您就可以访问其 API。

var animationSpringModule = require("nativescript-animation-spring");

API

View.animate 方法

如 NativeScript 文档中的 动画部分 所述,像往常一样使用 View.animate() 方法。为了获得弹簧效果,除了标准的 transform 和 scale 选项之外,还需要指定一些其他选项

  • duration:小数(以毫秒为单位)
  • delay:小数(以毫秒为单位)
  • dampingRatio:浮点数
  • velocity:浮点数
  • options:对象(UIViewAnimationOptions)
  • curve:字符串(《要使用弹簧动画,曲线必须设置为 "spring"》)

完整的选项集在 Apple 开发者网站上 有文档说明。修改这些选项会产生不同的弹簧效果。以下是一个用于截图上方函数调用的示例(尽管由于 GIF 不是每秒 60 帧,所以在模拟器或实际设备上看起来更平滑)。

myView.animate({
translate: {
x: 0,
y: -100
},
scale: {
x: 2,
y: 2
},
duration: 10000,
delay: 0,
dampingRatio: 0.3,
velocity: 2.0,
options: null,
curve: "spring" //<---set this to "spring" to use the spring animation
})

无论是否包含此插件,调用上述 animate 函数都将正常工作,因为额外的参数将由 NativeScript animate 函数忽略。