uni-app点击返回按钮没有过度动画 很生硬

uni-app点击返回按钮没有过度动画 很生硬

信息类别 详情
产品分类 uniapp/App
PC操作系统 Mac
操作系统版本 Monterey 12.3
HBuilderX类型 Alpha
HBuilderX版本 3.4.5
手机系统 iOS
手机系统版本 iOS 15
手机厂商 苹果
手机机型 iphone 12
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • Hello uni-app 项目进入任何页面点击返回

预期结果:

  • 过度正常

实际结果:

  • 过度不正常 闪屏

bug描述:

新建了一个Hello uni-app 项目, 采用IOS真机调试,点击左上返回按钮 一点过度动画也没有,而且还会闪屏。用手势返回还算正常。详见附件视频,视频内前两次操作是滑动返回,后两次是点击左上方返回按钮的效果

1649839453269212.mp4_.zip

3 回复

视频里前两次操作是手势返回,后两次是点击左上返回按钮


uni-app 中,如果你发现点击返回按钮时页面切换没有过渡动画,显得很生硬,可能是因为你没有正确配置页面切换的动画效果。uni-app 默认是支持页面切换动画的,但如果你在某些情况下没有看到动画效果,可以尝试以下几种方法来解决:

1. 检查 pages.json 配置

pages.json 中,你可以为每个页面配置 animationTypeanimationDuration 来控制页面切换的动画效果。

{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        "animationType": "slide-in-right", // 页面进入动画
        "animationDuration": 300 // 动画持续时间
      }
    },
    {
      "path": "pages/detail/detail",
      "style": {
        "navigationBarTitleText": "详情页",
        "animationType": "slide-in-left", // 页面进入动画
        "animationDuration": 300 // 动画持续时间
      }
    }
  ]
}

2. 使用 uni.navigateBack 方法

如果你是通过 uni.navigateBack 方法返回上一页,确保你没有禁用动画效果。uni.navigateBack 默认是带有动画效果的。

uni.navigateBack({
  delta: 1, // 返回的页面数
  animationType: 'slide-out-right', // 返回动画
  animationDuration: 300 // 动画持续时间
});

3. 检查页面栈

如果你在页面栈中直接跳转到某个页面,而不是通过 navigateToredirectTo 等方法,可能会导致动画效果丢失。确保你使用的是 navigateToredirectTo 等方法进行页面跳转。

4. 检查平台差异

uni-app 在不同平台上的表现可能会有所不同。例如,在 H5 平台上,页面切换动画可能会受到浏览器的影响。如果你在某个平台上没有看到动画效果,可以尝试在其他平台上测试,或者查阅 uni-app 官方文档中关于该平台的特定配置。

5. 自定义动画

如果你对默认的动画效果不满意,可以通过自定义 CSS 动画来实现更复杂的页面切换效果。你可以在页面进入和离开时,通过 onShowonHide 生命周期钩子来触发自定义动画。

export default {
  onShow() {
    // 页面显示时触发自定义动画
  },
  onHide() {
    // 页面隐藏时触发自定义动画
  }
}

6. 检查是否禁用了动画

在某些情况下,你可能在代码中禁用了页面切换动画。例如,通过 uni.setNavigationBarTitle 方法设置标题时,可能会禁用动画。确保你没有在代码中禁用动画效果。

uni.setNavigationBarTitle({
  title: '新标题',
  animation: true // 确保动画开启
});
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!