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与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
Nov 12 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
Mar 24 Javascript
深入理解Javascript中的作用域链和闭包
Apr 25 Javascript
JavaScript 截取字符串代码实例
Sep 05 Javascript
JavaScript实现留言板案例
Mar 17 Javascript
JS实现图片幻灯片效果代码实例
May 21 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导出oracle库的php代码
2009/04/20 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
python网络编程示例(客户端与服务端)
2014/04/24 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python读取Excel的方法实例分析
2015/07/11 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python numpy存取文件的方式
2020/04/01 Python
手动安装python3.6的操作过程详解
2020/01/13 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
九州传奇上机题
2014/07/10 面试题
土木工程应届生自荐信
2013/09/24 职场文书
求职信格式范本
2013/11/15 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
战略合作意向书
2014/07/29 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
python OpenCV学习笔记
2021/03/31 Python
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL