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 相关文章推荐
js下关于onmouseout、事件冒泡的问题经验小结
Dec 09 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
js二维数组排序的简单示例代码
Jan 24 Javascript
封装了一个支持匿名函数的Javascript事件监听器
Jun 05 Javascript
jQuery实现的登录浮动框效果代码
Sep 26 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
Oct 19 Javascript
vue-hook-form使用详解
Apr 07 Javascript
bootstrap轮播图示例代码分享
May 17 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
vux uploader 图片上传组件的安装使用方法
May 15 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 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设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP调用接口用post方法传送json数据的实例
2018/05/31 PHP
用js计算页面执行时间的函数
2006/12/07 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
javascript中length属性的探索
2011/07/31 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
JS代码防止SQL注入的方法(超简单)
2016/04/12 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
微信小程序实现tab切换效果
2017/11/21 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python3 Random模块代码详解
2017/12/04 Python
python多进程实现文件下载传输功能
2018/07/28 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
Shell编程面试题
2016/05/29 面试题
高中校园广播稿
2014/01/11 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
服务员岗位职责
2015/02/03 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
病房管理制度范本
2015/08/06 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫