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 用Node.js写Shell脚本[译]
Sep 20 Javascript
关于extjs4如何获取grid修改后的数据的问题
Aug 07 Javascript
JS小功能(button选择颜色)简单实例
Nov 29 Javascript
JS实现仿FLASH效果的竖排导航代码
Sep 15 Javascript
谈一谈javascript闭包
Jan 28 Javascript
iScroll.js 使用方法参考
May 16 Javascript
JS 终止执行的实现方法
Nov 24 Javascript
jQuery实现弹出窗口弹出div层的实例代码
Jan 09 Javascript
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
javascript 中模板方法单例的实现方法
Oct 17 Javascript
layui表格内容溢出的解决方法
Sep 06 Javascript
layui实现checkbox的目录树tree的例子
Sep 12 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批量删除、清除UTF-8文件BOM头的代码实例
2014/04/14 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
2021/03/04 PHP
javascript options属性集合操作代码
2009/12/28 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
jquery对表单操作2
2011/04/06 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
JavaScript实现简单轮播图效果
2018/12/01 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python多线程编程(一):threading模块综述
2015/04/05 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Python如何操作docker redis过程解析
2020/08/10 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
考博专家推荐信模板
2013/12/02 职场文书
学校十一活动方案
2014/02/01 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
详解Python常用的魔法方法
2021/06/03 Python
Python Pandas常用函数方法总结
2021/06/15 Python
Python预测分词的实现
2021/06/18 Python