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 相关文章推荐
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
JQuery循环滚动图片代码
Dec 08 Javascript
jquery 之 $().hover(func1, funct2)使用方法
Jun 14 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
Mar 17 Javascript
bootstrap 表单验证使用方法
Jan 11 Javascript
vue与bootstrap实现时间选择器的示例代码
Aug 26 Javascript
vue仿ios列表左划删除
Sep 26 Javascript
vue Cli 环境删除与重装教程 - 版本文档
Sep 11 Javascript
基于openlayers实现角度测量功能
Sep 28 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
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
php5.2.0内存管理改进
2007/01/22 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP加密解密类实例分析
2015/04/20 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
JS实现文字掉落效果的方法
2015/05/06 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python中的句柄操作的方法示例
2019/06/20 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
台湾生鲜宅配:大口市集
2017/10/14 全球购物
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
个人教师自我评价范文
2013/12/02 职场文书
施工工地安全标语
2014/06/07 职场文书
大学生工作求职信
2014/06/23 职场文书
内科护士节演讲稿
2014/09/11 职场文书
老公保证书
2015/01/17 职场文书
会计岗位职责
2015/02/03 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书