BetterScroll只能上拉不能下拉
下面源代码
<template>
<div class="two">
<div class="wrapper" ref="wrapper">
<div class="content">
<ul class="applist">
<li v-for="(item,index) in data"
:key="index"
@click="Btn(item.Src)"
>
<div class="logo">
<img :src="item.LogoImg" alt="">
</div>
<div class="text">
<p class="top">{{item.AppName}}</p>
<p class="smalltext">{{item.Use}}</p>
</div>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import BetterScrolll from 'better-scroll'
import http from '../../assets/api/request'
export default {
components:{
BetterScrolll
},
data(){
return{
data:[],
}
},
methods:{
async getData(){
let res = await http.$axios({
url:'/api/good/id',
})
this.data = res
},
},
mounted(){
this.getData();
this.$nextTick(()=>{
this.scroll = new BetterScrolll(this.$refs.wrapper, {
movable:true,
zoom:true,
click:true,
})
})
}
}
</script>
<style scoped lang='scss'>
.two{
width: 100vw;
height: 100vh;
overflow: hidden;
}
.wrapper{
width: 100vw;
height: 100vh;
overflow: hidden;
.content{
width: 100vw;
}
}
.applist{
width: 100vw;
margin: 0 auto;
position: relative;
li{
width: 335px;
height: 100px;
margin: 0 auto 18px auto;
display: flex;
align-items: center;
justify-content:space-between;
background-color: white;
border: 3px solid black;
.logo{
width: 55px;
height: 55px;
padding: 5px;
img{
width: 100%;
height: 100%;
}
}
.text{
width: 270px;
height: 100px;
display: flex;
flex-direction:column;
align-items: center;
p{
height: 50px;
width: 255px;
margin: 0;
padding: 0;
}
.top{
border-bottom: 2px solid rgb(0, 0, 0);
line-height: 50px;
font-size: 18px;
}
.smalltext{
padding: 3px;
font-size: 12px;
}
}
}
}
</style>
本来是只能往上拉,往下拉一点就回弹
刚刚随便乱点,改了下窗口大小
就上面那个,就神奇般的正常了,大小再改回去也可以正常滑动了,但每次第一次点进去都只能向上滑,改了大小后滑动才变得正常,这咋回事
要解决BetterScroll只能上拉不能下拉的问题,你可以尝试检查BetterScroll的配置是否正确。确保pullUpLoad.enable和pullDownRefresh.enable都设置为true,以确保BetterScroll可以正确的上拉和下拉。此外,你可以尝试检查BetterScroll的pullDownRefresh.threshold属性是否正确,确保该属性的值大于等于0,以确保BetterScroll可以正确的下拉。
有咩有可能是你的Better-Scroll的第一个包裹的第一个Div样式里面有一个Float导致了元素的脱流,从而使Better-Scroll内容无法下拉!
如果试试这样,可以去掉Better-Scroll里面所有元素的浮动效果:
.clearfix{
clear: both;
}
根据你提供的代码,我没有看到明显的错误。但是可能有几种原因导致 BetterScroll 只能上拉而不能下拉,包括但不限于以下几种情况:
1、wrapper 和 content 的高度没有正确设置。请确保 wrapper 的高度等于或大于 content 的高度。
2、你在 BetterScroll 的选项中设置了 movable 或 zoom 属性,这可能会导致 BetterScroll 只能上拉而不能下拉。请尝试删除这些选项并重新测试。
3、在初始化 BetterScroll 实例之前,wrapper 可能没有正确地加载,导致 BetterScroll 计算滚动区域时出现问题。你可以尝试将初始化 BetterScroll 实例的代码移到 $nextTick 回调函数中,确保在 wrapper 元素加载完毕后再初始化 BetterScroll。
4、你的数据可能没有正确加载,导致 content 区域高度为零。请确保在初始化 BetterScroll 实例之前已经加载了所有必要的数据。
如果仍然无法解决问题,请尝试使用浏览器的开发者工具查看 BetterScroll 实例的状态,并检查是否存在任何错误或警告消息。
如果您的 BetterScroll 只能上拉不能下拉,可以考虑以下几个原因:
1.配置项问题:您可以检查您的 BetterScroll 配置项是否正确,特别是 pullDownRefresh 和 pullUpLoad 的配置项,确保这两个配置项都已启用。
2.数据问题:如果没有下拉刷新数据,则 BetterScroll 将无法支持下拉刷新。
3.元素高度问题:如果 BetterScroll 包裹元素的高度不足以支持下拉刷新,则 BetterScroll 将不支持下拉刷新。
4.CSS 样式问题:如果 CSS 样式影响了 BetterScroll 的滚动效果,则可能导致 BetterScroll 无法下拉刷新。
如果以上内容都没有解决您的问题,请提供更多细节,例如文字代码(不要图片)和配置,我将会尽力帮助您。
如果 BetterScroll 只能上拉不能下拉,那么可能是您在 BetterScroll 的配置中没有开启下拉刷新的功能。
如果您想在 BetterScroll 中使用下拉刷新功能,请在配置 BetterScroll 的时候将 pullDownRefresh 配置项设置为一个对象,并在该对象中配置相关的回调函数。
以下是一个代码示例:
const bs = new BScroll('.wrapper', {
pullDownRefresh: {
threshold: 50,
stop: 20,
content: '正在刷新...',
onPulling() {
console.log('pulling')
},
onRefresh() {
console.log('refresh')
}
}
})
您需要在 onPulling 回调函数中实现下拉过程中的逻辑,并在 onRefresh 回调函数中实现刷新完成后的逻辑。
需要注意的是,在执行完下拉刷新的逻辑后,您需要调用 BetterScroll 的 finishPullDown 方法来结束下拉刷新的状态。
以下是一个代码示例:
// 模拟下拉刷新操作
setTimeout(() => {
bs.finishPullDown()
}, 2000)