uni-app 支付宝 pageScrollTo 动画不生效

uni-app 支付宝 pageScrollTo 动画不生效

示例代码:

uni.pageScrollTo({ scrollTop:100, duration: 300 })


## 操作步骤:


调用 uni.pageScrollTo({
scrollTop:100,
duration: 300
})

预期结果:

300ms滚动100px 带动画效果

实际结果:

0ms 滚动100px ,没动画效果

bug描述:

调用 uni.pageScrollTo 时滚动动画不生效

支付宝工具提示 支付宝小程序 pageScrollTo 暂不支持 duration

用支付宝原生方法是生效的

my.pageScrollTo({ scrollTop:100, duration: 300 })


![Image](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20250717/db011ee2c83fc378a502c829b05dd4a2.png)

更多关于uni-app 支付宝 pageScrollTo 动画不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

感谢反馈,问题已复现,已加分。
临时解决方案
替换 /Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-alipay/dist/uni.api.esm.js 为附件文件

更多关于uni-app 支付宝 pageScrollTo 动画不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


4.81.2025091909-alpha 版本的HX已修复此问题,可升级到此版本

支付宝小程序平台对 uni-app 的 pageScrollTo 方法确实存在兼容性问题。根据支付宝官方文档,其原生 API 支持 duration 参数,但 uni-app 在支付宝端的适配层未完整实现该特性。

问题原因:uni-app 的跨端编译在支付宝平台将 uni.pageScrollTo 转换为小程序原生 API 时,duration 参数未被正确传递或处理,导致动画失效。

解决方案

  1. 条件编译使用原生方法(推荐):
// #ifdef MP-ALIPAY
my.pageScrollTo({
  scrollTop: 100,
  duration: 300
})
// #endif

// #ifndef MP-ALIPAY
uni.pageScrollTo({
  scrollTop: 100,
  duration: 300
})
// #endif
  1. 封装通用方法
function pageScrollTo(options) {
  #ifdef MP-ALIPAY
  my.pageScrollTo(options)
  #else
  uni.pageScrollTo(options)
  #endif
}
回到顶部