vue better-scroll插件使用详解


Posted in Javascript onJanuary 25, 2018

什么是 better-scroll

better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在 这里 。better-scroll 也很强大,不仅可以做普通的滚动列表,还可以做轮播图、picker 等等。

在需要的文件中添加

import BScorll from 'better-scroll';

引用的示例代码:

let scroll = new BScroll(Dom对象, {//options
 startX: 0,
 startY: 0
})

Vue获得Dom对象方法,

<div v-el:food-wrapper></div>//定义对象
this.$els.foodWrapper//获取对象

(Vue 更新数据时是异步的,所以在数据未加载完全之前,Bscroll无法获取目标内容的高度,所以会导致无法滚动的现象)

为了解决上面的问题,运用Vue的nextTick();

(简单说,因为DOM至少会在当前tick里面的代码全部执行完毕再更新。所以不可能做到在修改数据后并且DOM更新后再执行,要保证在DOM更新以后再执行某一块代码,就必须把这块代码放到下一次事件循环里面,比如setTimeout(fn, 0),这样DOM更新后,就会立即执行这块代码。)

// DOM 还没有更新
Vue.nextTick(function () {
 // DOM 更新了
})

问题:

PC页面时,点击不会被 better-scroll阻止事件,初始化,给 better-scroll派发事件,使移动端拥有点击事件,因此切换到PC端时,点击事件会被执行两次,

方法:在点击时,传 $event变量,Better-scroll插件中的 event事件和原生 js的 event有属性上得区别,Better-scroll插件派发的事件时event_constructed为true,原生点击事件是没有这个属性的,

selectMenu(index,event){
  if(!event._constructed){//如果不存在这个属性,则不执行下面的函数
    return;
  }
}

使用手册:https://github.com/ustbhuangyi/better-scroll

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
JS之Date对象和获取系统当前时间详解
Jan 13 Javascript
jQuery图片特效插件Revealing实现拉伸放大
Apr 22 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
深入浅析JavaScript中的constructor
Apr 19 Javascript
JSON 对象未定义错误的解决方法
Sep 29 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
一个基于react的图片裁剪组件示例
Apr 18 Javascript
自定义Vue中的v-module双向绑定的实现
Apr 17 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
jquery 获取索引值在一定范围的列表方法
Jan 25 #jQuery
MUI 实现侧滑菜单及其主体部分上下滑动的方法
Jan 25 #Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 #Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 #Javascript
mui框架 页面无法滚动的解决方法(推荐)
Jan 25 #Javascript
vue使用 better-scroll的参数和方法详解
Jan 25 #Javascript
Vue cli+mui 区域滚动的实例代码
Jan 25 #Javascript
You might like
PHP 和 COM
2006/10/09 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
PHP开发框架总结收藏
2008/04/24 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
PHP文件操作实例总结
2016/09/27 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
js 手机号码合法性验证代码集合
2012/09/29 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
js切换光标示例代码
2013/10/10 Javascript
javascript模拟命名空间
2015/04/17 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
javascript的BOM
2016/05/03 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
Python通过正则表达式选取callback的方法
2015/07/18 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
Django的models模型的具体使用
2019/07/15 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
Django app配置多个数据库代码实例
2019/12/17 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
墨西哥网上超市:Superama
2018/07/10 全球购物
统计员岗位职责
2013/11/14 职场文书
机械电子工程毕业生自荐信
2013/11/23 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
采购内勤岗位职责
2015/04/13 职场文书