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 相关文章推荐
js 替换
Feb 19 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
JS 实现导航栏悬停效果
Sep 23 Javascript
javascript实例--教你实现扑克牌洗牌功能
May 15 Javascript
JavaScript获取路径设计源码
May 22 Javascript
js漂浮广告实现代码
Aug 15 Javascript
温习Javascript基础语法之词法结构
May 31 Javascript
Bootstrap表单控件使用方法详解
Jan 11 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
echarts实现晶体球面投影的实例教程
Oct 10 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
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
Opacity.js
2007/01/22 Javascript
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
JS实现碰撞检测的方法分析
2018/01/19 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
2018/04/18 Javascript
微信小程序实现留言板功能
2018/11/02 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
12步教你理解Python装饰器
2016/02/25 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
python实现图书管理系统
2018/03/12 Python
python奇偶行分开存储实现代码
2018/03/19 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
尼克胡哲观后感
2015/06/08 职场文书
钢琴师观后感
2015/06/12 职场文书
湘江北去观后感
2015/06/15 职场文书
银行求职信范文
2019/05/13 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python