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 this调用规则说明
Mar 08 Javascript
JQuery 学习技巧总结
May 21 Javascript
Extjs优化(一)删除冗余代码提高运行速度
Apr 15 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
jQuery+formdata实现上传进度特效遇到的问题
Feb 24 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
Jan 11 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
前端天气插件tpwidget使用方法详解
Jun 24 Javascript
layui switch 开关监听 弹出确定状态转换的例子
Sep 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
thinkPHP实现的省市区三级联动功能示例
2017/05/05 PHP
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
JavaScript编程的10个实用小技巧
2014/04/18 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
jQuery的css() 方法使用指南
2015/05/03 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
python遍历数组的方法小结
2015/04/30 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
2019/12/17 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
员工自我鉴定
2013/10/09 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
我的祖国演讲稿
2014/05/04 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
python可视化大屏库big_screen示例详解
2021/11/23 Python
python通过新建环境安装tfx的问题
2022/05/20 Python
MySQL索引失效场景及解决方案
2022/07/23 MySQL