vue better scroll 无法滚动的解决方法


Posted in Javascript onJune 07, 2018

使用vue+better scroll

今天实现切换用户后查询用户订单列表的一个功能,在实例化betterscroll时,因为有的用户没有订单,切换用户后会出现订单列表无法滚动的问题。先放代码:

<!-- 订单列表 -->
<div id="order-list" ref="scrollWrap">
 <ul v-if="orderLists.length > 0">
  <li v-for="(orderList,index) in orderLists" :key="index">
   <div class="order-info"> 订单信息 </div>
   </li>
 </ul>
 <div class="no-orders" v-else>
  <p>最近没有订单</p>
 </div>
</div>
// init better scroll
initScroll() {
 let self = this;
 if (!this.scroll) {
  this.scroll = new BScroll(self.$refs.scrollWrap, {
   bounceTime: 200,
   click: true,
   mouseWheel: true,
   scrollbar: { // 滚动条
    fade: true,
   },
  pullUpLoad: { // 上拉加载
   threshold: -40,
  }
  })
 } else {
 this.scroll.refresh();
 }
 this.scroll.on('pullingUp', () => {
 if(this.orderLists.length%10 == 0) { 
  // 判断是否还有订单,但没有考虑用户有10的整倍数条订单的情况
  this.orderSize += 10;
  this.resentOrders();
  return;
 } else {
  Toast("没有更多了")
 }
 })
},

找了半天原因,最后发现应该这样:

<!-- 订单列表 -->
<div id="order-list" ref="scrollWrap">
 <ul v-show="orderLists.length > 0">
  <li v-for="(orderList,index) in orderLists" :key="index">
   <div class="order-info"> 订单信息 </div>
  </li>
 </ul>
 <div class="no-orders" v-show="orderLists.length === 0" >
  <p>最近没有订单</p>
 </div>
</div>

把v-if、v-else换成 v-show就好啦

ps:

1. 检查HTML 以及css是否有写错的地方,有时候写错会导致html中dom无法正确生成,而better-scroll是需要dom完全加载完毕后才可以正确滚动的

2. html和css全部写正确的时候还是无法滚动

检查better-scroll是否初始化时机太早(dom没有完全生成,已经初始化了),可以使用vue的$nextTick来异步初始化better-scroll

3. better-scroll在使用的时候,滚动只作用于第一层元素,因此在使用better-scroll时,better要加上一层div(div下面再放其他东西,better里不能有同级的2及以上div)

这里要加上seller-content层,如果不加是无法滚动的

vue better scroll 无法滚动的解决方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript学习(二)javascript常见问题总结
Jan 02 Javascript
js仿百度贴吧验证码特效实例代码
Jan 16 Javascript
Javascript玩转继承(一)
May 08 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
Mar 14 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
Aug 28 Javascript
bootstrap快速制作后台界面
Dec 05 Javascript
ES6新特性之Object的变化分析
Mar 31 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
Mar 01 Javascript
VUE中v-on:click事件中获取当前dom元素的代码
Aug 22 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
Aug 30 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 #Javascript
JavaScript 正则命名分组【推荐】
Jun 07 #Javascript
详解create-react-app 自定义 eslint 配置
Jun 07 #Javascript
vue.js实现标签页切换效果
Jun 07 #Javascript
js数组去重的N种方法(小结)
Jun 07 #Javascript
vue+axios新手实践实现登陆的示例代码
Jun 06 #Javascript
vue2.0实现音乐/视频播放进度条组件
Jun 06 #Javascript
You might like
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
推荐一些非常不错的javascript学习资源站点
2007/08/29 Javascript
JavaScript 面向对象之命名空间
2010/05/04 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
JS将秒换成时分秒实现代码
2013/09/03 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python多线程扫描端口(线程池)
2019/09/04 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
课程设计心得体会
2013/12/28 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
订货会主持词
2015/07/01 职场文书
六五普法学习心得体会
2016/01/21 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
学会Python数据可视化必须尝试这7个库
2021/06/16 Python