随笔 - 2649  文章 - 2452  评论 - 0  阅读 - 80424

animation

animation

animation 模块可以用来在组件上执行动画。JS-Animation可以对组件执行一系列简单的变换 (位置、大小、旋转角度、背景颜色和不透明度)。

举个例子,如果有一个 <image> 组件,通过动画你可以对其进行移动、旋转、拉伸或收缩等动作。

animation.transition(ref1, {
    styles: {
        backgroundColor: '#FF0000',
        transform: 'translate(250px, 100px)',
    },
    duration: 800, //ms
    timingFunction: 'ease',
    needLayout:false,
    delay: 0 //ms
    }, function () {
        modal.toast({ message: 'animation finished.' })
    })

Android 兼容性

你有可能会遇到如下Crash Unable to create layer for xxx 如果你的含有 animationcomponent 的大小(长或宽)超过了最大值,因为这会使 OpenGL 内存区域发生 OutOfMemory

你的 component 的允许的最大值与机器有关,但一般来说,如果你的 component 的大小超过屏幕大小,就有可能触发Crash。

TIP

如果需要使用CSS动画,参考 transitiontransform

#文档

#transition

#transition(ref, options, callback)

  • @ref,将要执行动画的元素。例如指定动画的元素 ref 属性为 test,可以通过调用 this.$refs.test 来获取元素的引用。

  • @options

    ,动画参数

    • styles

      ,设置不同样式过渡效果的键值对,下表列出了所有合法的参数:

      • width
      • height
      • backgroundColor
      • opacity
      • transformOrigin
      • transform
        • translate/translateX/translateY
        • rotate/rotateX/rotateY
        • perspective
        • scale/scaleX/scaleY
    • durationduration(number):指定动画的持续时间 (单位是毫秒),默认值是 0,表示瞬间达到动画结束状态。

    • delaydelay (number):指定请求动画操作到执行动画之间的时间间隔 (单位是毫秒),默认值是 0,表示没有延迟,在请求后立即执行动画。

    • needLayoutneedLayout (boolean):动画执行是否影响布局,默认值是false。

    • timingFunction

      timingFunction
      

      (string):描述动画执行的速度曲线,用于描述动画已消耗时间和动画完成进度间的映射关系。默认值是

      linear
      

      ,表示动画从开始到结束都拥有同样的速度。下表列出了所有合法的属性:

      • linear:动画从头到尾的速度是相同的
      • ease-in:动画速度由慢到快
      • ease-out:动画速度由快到慢
      • ease-in-out:动画先加速到达中间点后减速到达终点
      • cubic-bezier(x1, y1, x2, y2):在三次贝塞尔函数中定义变化过程,函数的参数值必须处于 0 到 1 之间。更多关于三次贝塞尔的信息请参阅 cubic-bezierBézier curve
  • @callbackcallback是动画执行完毕之后的回调函数。在iOS平台上,你可以获取动画执行是否成功的信息。

TIP

  • iOS上可以获取 animation 是否执行成功的信息,callback中的result参数会有两种,分别是是SuccessFail
  • Android 的callback 函数不支持result参数。

#styles中支持动画的属性

  • widthwidth表示动画执行后应用到组件上的宽度值。如果你需要影响布局,设置needLayouttrue。默认值为computed width

  • heightheight表示动画执行后应用到组件上的高度值。如果你需要影响布局,设置设置为 needLayouttrue。默认值为computed width

  • backgroundColorbackgroundColor动画执行后应用到组件上的背景颜色,默认值为computed backgroundColor。

  • opacityopacity表示动画执行后应用到组件上的不透明度值,默认值为computed opacity。

  • transformOrigintransformOrigin定义变化过程的中心点,如transformOrigin: x-axis y-axis 参数 x-axis 可能的值为 leftcenterright、长度值或百分比值,参数 y-axis 可能的值为 topcenterbottom、长度值或百分比。默认值为center center

  • transform

    transform
    

    变换类型,可能包含rotate

    translate

    scale`及其他属性。默认值为空。

    • translate/translateX/translateY指定元素要移动到的位置。单位是长度或百分比,默认值是0.
    • rotate/rotateX/rotateYv0.16+ 指定元素将被旋转的角度。单位是度 角度度,默认值是0
    • scale/scaleX/scaleY按比例放大或缩小元素。单位是数字,默认值是1
    • perspectivev0.16+ 观察者距离z=0平面的距离,在Android 4.1及以上有效。单位值数字,默认值为正无穷。
posted on   AtlasLapetos  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示