react-native 金币彩带雨下落动画
日常项目中,经常遇到一些表情雨/金币雨/彩带雨 等下落的动画,之前做android原生的时候,写过类似的效果,主要通过自定义view 在onDraw里绘制下落的过程,具体可以看下我的这篇github地址android 仿微信表情雨下落,现在转战 react-native,同样可以实现这样的效果,主要用到的动画库 react-native-animatable
安装 yarn add react-native-animatable库
主要用到的动画是移动下落,即translateY,从屏幕顶部下落至底部,同时过程中可以左右摇摆,每次随机图片下落。
_FailAnimation = ({style,duration,delay,startY,speed,children}) => {
return <Animatable.View //下落动画
style={style}
duration={duration}
delay={delay}
animation={{
from: {translateY: startY},
to: {translateY: this.state.parentHeight + speed}
}}
easing={t => Math.pow(t, 1.2)}
useNativeDriver>
{children}
</Animatable.View>
}
_SwingAnimation = ({delay, duration, children}) => {
return <Animatable.View //左右摇摆动画
animation={{
0: {
translateX: -12,
rotate: '10deg',
},
0.5: {
translateX: 0,
rotate: '0deg',
},
1: {
translateX: 12,
rotate: '-10deg',
},
}}
delay={delay}
duration={duration}
direction="alternate"
easing="ease-in-out"
iterationCount="infinite"
useNativeDriver>
{children}
</Animatable.View>
}
主要用到的动画,动画是可以相互嵌套的
range(count).map((i) =>(
<FailAnimation
key={i}
startY={startY}
speed={speed}
style={{
position: "absolute",
left: Math.random() * this.state.parentWidth
}}
duration={duration}
delay={i * (duration / count)}
>
<SwingAnimation
delay={Math.random() * duration }
duration={duration}
>
{this._imgRandom(imgs)}
</SwingAnimation>
</FailAnimation>
))
通过外部传属性imgs图片数组
<Rain
imgs={imgs}
count={35}
duration={1500}>
</Rain>
源代码github地址 https://github.com/taixiang/reactNativeDemo
这个github地址里后续会记录平时学习工作中用到的rn方面的知识点,这会是一个长期的过程,我自己也会坚持下去。
欢迎关注我的个人博客:https://www.manjiexiang.cn/
更多精彩欢迎关注微信号:春风十里不如认识你
一起学习,一起进步,欢迎上车,有问题随时联系,一起解决!!!
react-native 金币彩带雨下落动画的更多相关文章
- React Native填坑之旅--动画
动画是提高用户体验不可缺少的一个元素.恰如其分的动画可以让用户更明确的感知当前的操作是什么. 无疑在使用React Native开发应用的时候也需要动画.这就需要知道RN都给我们提供了那些动画,和每个 ...
- React Native 学习笔记--进阶(二)--动画
React Native 进阶(二)–动画 动画 流畅.有意义的动画对于移动应用用户体验来说是非常必要的.我们可以联合使用两个互补的系统:用于全局的布局动画LayoutAnimation,和用于创建更 ...
- React Native 在 Airbnb(译文)
在Android,iOS,Web和跨平台框架的横向对比中,React Native本身是一个相对较新且快速开发移动的平台.两年后,我们可以肯定地说React Native在很多方面都是革命性的.这是移 ...
- React Native简史
诞生 React Native 诞生于 2013 年的 Facebook 内部黑客马拉松(hackathon): In the essence of Facebook’s hacker culture ...
- Flutter vs React Native vs Native:深度性能比较
老孟导读:这是老孟翻译的付费文章,文章所有权归原作者所有. 欢迎加入老孟Flutter交流群,每周翻译2-3篇付费文章,精彩不容错过. 原文地址:https://medium.com/swlh/flu ...
- React Native动画总结
最近在使用react native进行App混合开发,相对于H5的开发,RN所提供的样式表较少,RN中不能使用类似于css3中的动画,因此,RN提供了Animated的API 1.写一个最简单的动画 ...
- 【React Native】进阶指南之一(特定平台、图片加载、动画使用)
一.特定平台代码 React Native提供了两种方法来区分平台: 使用Platform模块: 使用特定平台扩展名: 1.Platform模块 React Native提供了一个检测当前运行平台的模 ...
- [RN] React Native 下拉放大动画
React Native 下拉放大动画 经测试,无法运行 https://www.jianshu.com/p/1c960ad75020
- React Native超棒的LayoutAnimation(布局动画)
该文翻译自:https://medium.com/@Jpoliachik/react-native-s-layoutanimation-is-awesome-4a4d317afd3e#.6 ...
随机推荐
- Python_添加行号
filename='demo.py' with open(filename,'r')as fp: lines=fp.readlines() #读取所有行 maxLength=max(map(len,l ...
- Oracle 服务启动关闭
有没有感觉到,自从装上Oracle之后,电脑变卡了?卡是正常的,oracle作为大型数据库软件,运行起来是非常吃内存的. 所以对于自用的电脑来说,不使用Oracle的时候,应该把Oracle的一系列服 ...
- SSM-SpringMVC-17:SpringMVC中深度剖析HandlerAdapter处理器适配器底层
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先放一张图 很熟悉啊,之前就看过,我们之前已经把handlerMapping剖了个底朝天,顺着上次的进度,继 ...
- 剑指Offer常见问题整理
1 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.(来自牛客网,剑指offer) ...
- lookup.go
{ continue } addr := net.JoinHostPort(lp.Info.BroadcastAddress, strconv. ...
- client_v1.go
package nsqlookupd import ( "net" ) //客户端 结构体 type ClientV1 struct { net.Conn //客户 ...
- Spring事务管理----事物回滚
Spring的事务管理默认只对未检查异常(java.lang.RuntimeException及其子类)进行回滚,如果一个方法抛出Checked异常,Spring事务管理默认不进行回滚. 改变默认方式 ...
- 卸载office密钥的命令
1,管理员运行CMD或者PowerShell2,转到2016安装目录,C:\Program Files\Microsoft Office\Office16,这是64位的,32位的在C:\Program ...
- java后台验证码工具
jcaptcha和kaptcha是两个比较常用的图片验证码生成工具,功能强大.kaptcha是google公司制作,Jcaptcha是CAPTCHA里面的一个比较著名的项目. Shiro 结合 kca ...
- Postman----打开postman console控制台,查看接口测试打印log
经常在脚本中使用变量时,你可能需要看到变量获取到的值,你可以使用Postman Console去实现的.操作步骤:应用菜单-->View--->Show Postman Console,去 ...