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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
May 06 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
Sep 28 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
Oct 27 Javascript
JS正则表达式常见用法实例详解
Jun 19 Javascript
解决vue自定义全局消息框组件问题
Nov 22 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 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
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
vuex 的简单使用
2018/03/22 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
详解js中Array的方法及技巧
2018/09/12 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
Python实现多属性排序的方法
2018/12/05 Python
numpy数组广播的机制
2019/07/12 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
python路径的写法及目录的获取方式
2019/12/26 Python
Python填充任意颜色,不同算法时间差异分析说明
2020/05/16 Python
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
怎样创建、运行java程序
2014/08/01 面试题
2014年两会学习心得范例
2014/03/17 职场文书
乡镇党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
党员争先创优承诺书
2015/01/20 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
导游词之桂林山水
2019/09/20 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL