一、前言

关于react-native的转场动画这里要依赖于路由库"react-navigation":“3.6.1”,可以实现包括向上转场、向下转场、向左转场、向右转场、缩放、alpha值变化、旋转等多种动画。

二、实现方式

以向左转场为例,我们需要在项目路由下 -> createStackNavigator -> transitionConfig 配置参数如下

transitionConfig: (sceneProps) => ({transitionSpec: {duration: 3000,// easing: Easing.out(Easing.poly(1)),easing: Easing.bounce,timing: Animated.timing,},screenInterpolator: sceneProps => {const {layout, position, scene} = sceneProps;const {index} = scene;console.log('zhanglei-index:' + index);const height = layout.initHeight;//沿X轴平移const translateX = position.interpolate({inputRange: [index - 1, index, index + 1],outputRange: [height, 0, 0],});//沿Y轴平移const translateY = position.interpolate({inputRange: [index - 1, index, index + 1],outputRange: [height, 0, 0],});//透明度const opacity = position.interpolate({inputRange: [0, 0.5, 0.9, 1],outputRange: [1, 0.25, 0.7, 1],// inputRange: [index - 1, index - 0.99, index],// outputRange: [0, 1, 1],});const rotateX = position.interpolate({inputRange: [0, 0.5, 1],outputRange: ['0deg', '90deg', '0deg']});const scaleX = position.interpolate({inputRange: [0, 0.5],outputRange: [0.8, 1.2],});return {// opacity,transform: [{translateX},// {translateY},// {rotateY: rotateX},// {scale: scaleX},]};},}),

实现效果

其他的方式可以通过代码中几种动画的组合来实现,这里由于时间关系就只做个简记,以后再补充。另外我们也可以通过原生路由处理,将页面的转场动画回归到原生开发。

三、transform样式的使用详解

可以很明显的看到,这里的动画是主要是由alpha值与transform样式控制的。transform主要可以用于实现平移、缩放、旋转、倾斜等图形变换。

3.1、平移

translateX:沿 x 轴方向平移
translateY:沿 y 轴方向平移

3.2、缩放

scaleX:沿 x 轴方向放大
scaleY:沿 y 轴方向放大
scale:沿 x、y 轴方向都放大

3.3、旋转

rotateX:沿 x 轴旋转
rotateY:沿 y 轴旋转
rotateZ:沿 z 轴旋转
rotate:不指定轴旋转

3.4、倾斜(或者叫做斜切)

skewX:沿 x 轴方向倾斜
skewY:沿 y 轴方向倾斜

3.5、react-native坐标轴方向

xyz轴的方向为(手机屏幕面向上,平方在手机上):
X轴正方向:手机右侧为正,向左为负;
Y轴正方向:手机下方为正,上方为负;
Z轴正方向:从手机背面向屏幕指向为负,反之从屏幕向背面指向为正;
控制旋转中心:https://www.jianshu.com/p/c67559b8f691

四、内置动画

另外,react-native内置了几种简单的转场动画,我们可以简单的处理成

transitionConfig: StackViewStyleInterpolator.forVertical,

其枚举类型有

import StackViewStyleInterpolator from "react-navigation-stack/dist/views/StackView/StackViewStyleInterpolator";
export default {forHorizontal,forVertical,forFadeFromBottomAndroid,forFadeToBottomAndroid,forFade,forNoAnimation
};

react-native转场动画,让你的APP瞬间绚丽起来相关推荐

  1. android转场动画,让你的APP瞬间绚丽起来

    友好的交互体验能够吸引眼球,android API 21(5.0)后系统内置了Activity之间的切换动画,不仅可以让用户看起来舒服,而且实现起来也特别简单. 一.通过overridePending ...

  2. Android Activity跳转动画,让你的APP瞬间绚丽起来

    我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单 ...

  3. 使用React Native进行气泡动画

    by Narendra N Shetty 由纳伦德拉·N·谢蒂(Narendra N Shetty) 使用React Native进行气泡动画 (Bubble animation with React ...

  4. React Native开发之动画(Animations)

    博主这个系列的文章 React Native开发之IDE(Atom+Nuclide) React Native开发之FlexBox代码+图解 React Native的Navigator详解 另外,我 ...

  5. React Native 实现Lottie动画

    Lottie是Airbnb开源的一个面向iOS.Android.React Native的动画库,能加载Adobe After Effects导出的动画,并且能让原生App像使用静态素材一样使用这些动 ...

  6. 使用React Native编写的一款阅读类app ———《轻松一刻》

    作者:阿钟 博客:http://blog.csdn.net/a_zhon 一款纯React Native原生代码编写的app 源码地址:https://github.com/azhon/Time 效果 ...

  7. 2021年,Flutter 与 React Native该如何选择?,安卓app开发教程

    一.Flutter 应用的优势 =========================================================================== 1. 热重载 = ...

  8. React Native加载动画,lottie-web 将json解析成动画

    1.安装依赖 npm install lottie-web --save 2.建立resources文件夹,内部导入AE动画的json文件且新建Lottie.js文件,封装Component组件 Lo ...

  9. rn react native PanResponder手势动画 实现窗口拖动 滑动动画 Animated

    个人笔记:(很多地方比较累赘,求指正) 需求:项目需要在RN窗口 实现对其拖动和滑动动画,点击滑动: 思路:通过PanResponder监听手势操作.配合Animated实现 不需要第三方包,比较简单 ...

最新文章

  1. 计算机网络各种传输介质说明
  2. Net设计模式之简单工厂模式(Simple Factory Pattern)
  3. iOS开发之使用XMPPFramework实现即时通信(二)
  4. angular 发布订阅
  5. hadoop学习6 运行map reduce出错
  6. vim ctrlp_使用Ctrlp和Ctag使Vim更智能
  7. 4列变成5列 datatable_云南美食界“5巨头”,谁才是NO.1?你家乡的那道菜也在列...
  8. 2020中国民营企业500强调研分析报告
  9. 微信内测新功能:公众号们脖子一凉...
  10. Part 4 —— Go 模块:v2 及更高版本
  11. 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
  12. C++智能指针的实现与使用(详解)
  13. c语言用户登录系统管理员,C语言系统用户管理系统
  14. [Other]B树 B+树 B*树 - 三大名树的基础简介
  15. python3 onvif协议 摄像头控制
  16. PID控制 通俗理解和简单实践
  17. python pip怎么安装包_python怎么用pip安装包
  18. [文萃画材•分享]秋叶+美术颜料=BOOM
  19. vue中文版Dash文档
  20. 信息系统项目管理师计算题考点汇总

热门文章

  1. Oracle项目管理系统之合同请款管理
  2. Java后端压缩-浏览器解压缩
  3. Matlab基础——切比雪夫I型滤波器(一)
  4. 辐射发射测试软件,电磁兼容之辐射发射测试与整改攻略
  5. java FUNCTION传入返回值模式简单记录
  6. 不卖广告,不卖教程VIP,网站盈利呢?
  7. 微信小程序:ibeacon实现室内定位签到模型
  8. 视频去水印免软件下载-视频去水印哪个软件好用
  9. MongoDB删除记录
  10. 如何更改图片尺寸?教你一种简单的修改方法