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 })

更多关于uni-app 支付宝 pageScrollTo 动画不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感谢反馈,问题已复现,已加分。
临时解决方案
替换 /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 参数未被正确传递或处理,导致动画失效。
解决方案:
- 条件编译使用原生方法(推荐):
// #ifdef MP-ALIPAY
my.pageScrollTo({
scrollTop: 100,
duration: 300
})
// #endif
// #ifndef MP-ALIPAY
uni.pageScrollTo({
scrollTop: 100,
duration: 300
})
// #endif
- 封装通用方法:
function pageScrollTo(options) {
#ifdef MP-ALIPAY
my.pageScrollTo(options)
#else
uni.pageScrollTo(options)
#endif
}

