uni-app IOS18.1.1系统 微信小程序端scroll-view滑动失效,麻烦尽快解决,复现代码已给出
uni-app IOS18.1.1系统 微信小程序端scroll-view滑动失效,麻烦尽快解决,复现代码已给出
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
产品分类:uniapp/小程序/微信
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:10
HBuilderX类型:正式
HBuilderX版本号:4.36
第三方开发者工具版本号:1.06.2409140
基础库版本号:3.6.6
项目创建方式:HBuilderX
示例代码:
<template>
<view class="p-c">
<view style="height: 40px;width: 100%;background-color: #f6131d">
header
</view>
<scroll-view
scroll-y="true"
class="message-list"
enable-flex
:style="{'height': system.windowHeight - (40 + safeAreaInsetsBottom) + 'px'}"
>
<view
v-for="(item, index) in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]"
:id="'' + index"
:key="index"
class="message-item"
>
{{ item }}
</view>
</scroll-view>
</view>
</template>
<script>
export default {
name: 'Test',
data() {
return {
system: null,
safeAreaInsetsBottom: null
}
},
onLoad() {
uni.getSystemInfo({
success: resp => {
this.system = resp
this.safeAreaInsetsBottom = resp?.safeAreaInsets?.bottom ?? 0
console.log('safeAreaInsetsBottom=', this.safeAreaInsetsBottom)
}
})
}
}
</script>
<style>
page {
-webkit-overflow-scrolling: touch;
height: 100%;
width: 100%;
box-sizing: border-box;
background: #fff;
font-size: 28rpx;
word-break: break-all;
white-space: normal;
color: $uni-text-color;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
</style>
<style scoped lang="scss">
.p-c {
height: 100%;
position: relative;
background-color: #EFF1F5;
padding-bottom: unset;
.message-list {
//height: 100%;
//overflow-y: auto;
padding: 0 20rpx;
background-color: #EFF1F5;
display: flex;
flex-direction: column-reverse;
.message-item {
width: 100%;
padding: 30px 0;
margin-bottom: 20px;
border: 1px solid #000;
}
}
}
</style>
有人处理吗
麻烦尽快看下问题解决吧
小程序上还是APP上或者是H5上?
微信小程序
把这两句注释掉就好了
确实可以了,因为我们需求是从下往上排列,其他机型没出现过这个问题,奇了怪了
回复 e***@foxmail.com: 应该是个BUG
或者把scroll-view上的enable-flex去掉
针对你提到的uni-app在微信小程序端(特别是在iOS 18.1.1系统)scroll-view
滑动失效的问题,这里提供一些可能的解决方案和代码示例。首先,确保你的uni-app和微信开发者工具都是最新版本,因为旧版本可能包含未修复的bug。
1. 检查基础设置
确保你的scroll-view
组件的基本属性设置正确,如scroll-y
或scroll-x
,以及是否设置了固定的高度或宽度。
<template>
<view>
<scroll-view scroll-y="true" style="height: 300px;">
<view v-for="item in 100" :key="item">
Item {{ item }}
</view>
</scroll-view>
</view>
</template>
2. 使用CSS Flexbox布局
有时,使用CSS Flexbox布局可以解决滚动问题。尝试给scroll-view
的父元素设置display: flex;
和相应的flex-direction
。
<template>
<view class="container">
<scroll-view class="scroll-area" scroll-y="true">
<view v-for="item in 100" :key="item" class="item">
Item {{ item }}
</view>
</scroll-view>
</view>
</template>
<style>
.container {
display: flex;
flex-direction: column;
height: 100vh;
}
.scroll-area {
flex: 1;
overflow-y: auto; /* For fallback in non-native scroll-view environments */
}
.item {
padding: 10px;
border-bottom: 1px solid #ccc;
}
</style>
3. 检查嵌套滚动
如果你的scroll-view
嵌套在其他可滚动的容器中,可能会导致滚动冲突。确保没有其他滚动元素干扰scroll-view
的滚动。
4. 尝试使用原生组件
在某些情况下,使用微信小程序的原生组件(如web-view
内嵌一个具有滚动功能的页面)可能是一个解决方案,尽管这通常不是首选方法,因为它会牺牲一些性能和功能。
5. 调试和日志
使用微信开发者工具的调试功能,检查是否有任何错误或警告被抛出。此外,检查网络请求和组件加载是否有问题,这些都可能影响滚动性能。
6. 联系uni-app社区或微信官方
如果上述方法都不能解决问题,建议联系uni-app的开发者社区或微信小程序的官方支持,提供详细的复现步骤和代码,以便他们能更好地帮助你。
希望这些解决方案能帮助你解决scroll-view
滑动失效的问题。如果问题仍然存在,请确保提供完整的复现步骤和代码,以便进一步分析。