better-scroll在vue项目中的使用
1、准备工作
在项目中安装better-scroll:
npm install --save better-scroll
组件中引入插件
import BScroll from "better-scroll"
2、开始使用插件
dom结构
<div class="bscroll" ref="bscroll">
<div class="bscroll-container"></div>
</div>
注:dom结构规定这样,滑动区域的内容放在bscroll-container中,否则,则可能不会成功
部分css
.bscroll{
width: 100%;
height: 5vH;
overflow: hidden;
}
注:父级bscroll必须有高度,并且overflow为hidden;
插件使用
mounted(){
this.$nextTick(() => {
let bscrollDom = this.$refs.bscroll;
this.aBScroll = new BScroll(bscrollDom,{})
})
}
注:
1、插件初始化时需要具体元素,所以再DOM结构中使用ref标记元素,以备插件使用;
2、建议放在nextTick方法里面,避免DOM结构未渲染完成从而造成子元素bscroll-container高度计算不准确;
3、建议使用this.bscroll方式定义,以备在其他方法中使用;
按照以上步骤,便可以简单的使用better-scroll插件了,效果如下图
3、better-scroll常用参数含义
startX: 0 (默认值:0) 表示X轴滚动的起始值
startY: 0 (默认值:0) 表示Y轴滚动的起始值
scrollY: false (默认值:false) 表示延Y轴滚动
scrollX: true (默认值:true) 表示延X轴滚动
freeScroll: false (默认值:false) 自由方向滚动
scrollbar: false (默认值:false) 滚动条
> 注: 当开启滚动条时,建议直接父级元素position设为 relative;因为滚动条为绝对定位,
为避免滚动条相对其祖辈元素定位而出现滚动条不符合预期效果的现象 click: false (默认值:false) 是否派发点击事件;
> 注:若设置为true仍然无法触发click事件,可以在click事件中添加如下方法
首先在点击事件中传入 $event ;示例:@click = "doSome($event)";
然后在事件中如下做法:
doSome(event){
if(event._constructed){return true;}
<!--在此下面写入你的事件-->
} momentum: true (默认值:true) 当快速滑动时是否开启滑动惯性
bounce: true (默认值:true) 是否启用回弹动画效果
bounceTime: 700 (默认值:700,单位:ms)回弹动画的动画时长。
probeType: 可选值:1、2、3; (默认值: 0 不派发scroll事件)想要获取滚动实时位置时派发事件的截流情况
1 滚动的时候会派发scroll事件,会截流;
2 滚动的时候实时派发scroll事件,不会截流;
3 除了实时派发scroll事件,在swipe的情况下仍然能实时派发scroll事件;
4、better-scroll常用方法
refresh() -> 重新计算 better-scroll,当 DOM 结构发生变化的时候务必要调用确保滚动的效果正常 scrollTo(x, y, time, easing) -> 滚动到指定的位置;
x: X轴位置;
y: Y轴位置;
time: 到达指定位置所需时间,单位ms;
easing: 动画函数(一般不建议修改) scrollBy(x, y, time, easing) -> 相对于当前位置偏移滚动 x,y 的距离;
x: 当前位置偏移X轴的距离
y: 当前位置偏移Y轴的距离
time: 到达偏移位置所需时间,单位ms;
easing: 动画函数(一般不建议修改) scrollToElement(el, time, offsetX, offsetY, easing) -> 滚动到指定的目标元素
el: 目标元素;
time: 到达目标元素所需时间,单位ms;
offsetX: 距离目标元素所偏移X轴的距离;设置为true时,到达目标元素中心位置
offsetY: 距离目标元素所偏移Y轴的距离;设置为true时,到达目标元素中心位置
easing: 动画函数(一般不建议修改) 使用示例:
this.aBScroll.scrollToElement("li",300);
5、better-scroll 中的srcoll系列事件
beforeScrollStart -> 触发时机:滚动开始之前
scrollStart -> 触发时机:滚动开始时
scroll -> 触发时机:滚动过程中,具体时机取决于选项中的 probeType。
scrollCancel -> 触发时机:滚动被取消。
scrollEnd -> 触发时机:滚动结束。
touchEnd -> 触发时机:鼠标/手指离开。
使用示例:
this.aBScroll.on('scroll',(pos) => {
// 你可以打印一下参数pos中都包含了什么!
<!--写入你要触发的事情-->
})
想要了解更多参数及其使用方法请前往:better-scroll文档地址
better-scroll在vue项目中的使用的更多相关文章
- vue项目中遇到的一些问题
或访问:https://github.com/littleHiuman/experiences-about-vue 欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...
- vue 项目中实用的小技巧
# 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...
- 如何在VUE项目中添加ESLint
如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...
- 在vue项目中, mock数据
1. 在根目录下创建 test 目录, 用来存放模拟的 json 数据, 在 test 目录下创建模拟的数据 data.json 文件 2.在build目录下的 dev-server.js的文件作如下 ...
- 浅谈 Axios 在 Vue 项目中的使用
介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中. 特性 它主要有如下特性: 浏览器端发起XMLHttpRequests请求 Node端发起http ...
- 去除vue项目中的#及其ie9兼容性
一.如何去除vue项目中访问地址的# vue2中在路由配置中添加mode(vue-cli创建的项目在src/router/index.js) export default new Router({ m ...
- vue 项目中当访问路由不存在的时候默认访问404页面
前言: 在Vue项目中,当访问的页面路由不存在或错误时,页面显示为一片空白.然而,通常我们需要对访问url不存在或者错误的情况下添加默认的404页面,即not found页面. 一般的处理方法是: 在 ...
- vue项目中遇到的那些事。
前言 有好几天没更新文章了.这段实际忙着做了一个vue的项目,从 19 天前开始,到今天刚好 20 天,独立完成. 做vue项目做这个项目一方面能为工作做一些准备,一方面也精进一下技术. 技术栈:vu ...
- scss/less语法以及在vue项目中的使用(转载)
1.scss与less都是css的预处理器,首先我们的明白为什么要用scss与less,因为css只是一种标记语言,其中并没有函数变量之类的,所以当写复杂的样式时必然存在局限性,不灵活,而scss与l ...
- Vue项目中GraphQL入门学习与应用
1.GraphQL是什么,能干什么? 正如官网所说,GraphQL是一种用于API查询的语言.Facebook 的移动应用从 2012 年就开始使用 GraphQL.GraphQL 规范于 2015 ...
随机推荐
- react-router4的使用备注
1.安装 react-router是核心库,在项目中不需要安装,web开发只需安装react-router-dom.native开发安装react-router-native. 2.url参数携带与获 ...
- ORACLE ASMLIB
ORACLE ASMLIB This blog post is more of a note for myself on configuring ASMLib. ASMLib is an opti ...
- 令人兴奋的TOP Server OPC Server v6.5 五大功能(上)
Software Toolbox的OPC和原生HMI设备的连接软件:TOP Server OPC Server.TOP Server OPC Server是采用业界领先的Kepware技术的工业4.0 ...
- Audio Queue Services Programming Guide(音频队列服务编程指南)
Audio Queue Services 的苹果官方文档: https://developer.apple.com/library/ios/documentation/MusicAudio/Conce ...
- 使用 chroot 建立沙盒环境
使用 chroot 建立沙盒环境 chroot 提供了更改当前进程及其子进程的可见根目录的操作,运行在此隔离环境中的应用程序无法访问新的目录树之外的文件和命令.这样的隔离环境称作 chroot 监狱( ...
- bug集锦------持续但不定期 更新
对于个人而言:这个错误集锦是很有必要的. 为了避免误导他人,其中个人想法:用 紫色加粗 标注. 1.springboot端口冲突: Protocol handler start failed2.spr ...
- HTML&CSS基础-文档声明
HTML&CSS基础-文档声明 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HTML的发展 1993年6月: HTML第一个版本 1995年11月: HTML2.0 ...
- 利用Git钩子实现代码发布
目录 1.什么是git钩子 2.安装一个钩子 3.常用的钩子脚本类型 3.1 客户端钩子 3.1.1 pre-commit 3.1.2 prepare-commit-msg 3.1.3 commit- ...
- 安恒西湖论剑线下上午CTF部分题目WP
简单的做了两个题,一道逆向,一道misc,其他题目,因为博主上课,时间不太够,复现时间也只有一天,后面的会慢慢补上 先说RE1,一道很简单的win32逆向,跟踪主函数,R或者TAB按几下, 根据esp ...
- moviepy改进的想码
这个要比前一个厚实点. 更改视频亮度,增加字幕,去除音轨,淡入特效,转换,截取时间,控制位置,组合图框,合成多段, 嗯,很多都有了. from django.test import TestCase ...