基于vue2.0以及better-scroll实现scroll滑动组件及所实现组件的应用例子
来源:互联网 发布:淘宝买药是货到付款吗 编辑:程序博客网 时间:2024/05/08 22:54
直接上源码:
组件:scroll.vue,需要先npm install better-scroll
<template> <div ref="wrapper"> <slot></slot> </div></template><script type="text/ecmascript-6"> import BScroll from 'better-scroll' const DIRECTION_H = 'horizontal' const DIRECTION_V = 'vertical' export default { props: { probeType: { type: Number, default: 1 }, click: { type: Boolean, default: false }, listenScroll: { type: Boolean, default: false }, data: { type: Array, default: null }, pullup: { type: Boolean, default: false }, beforeScroll: { type: Boolean, default: false }, refreshDelay: { type: Number, default: 20 }, direction: { type: String, default: DIRECTION_V } }, mounted() { setTimeout(() => { this._initScroll() }, 20) }, methods: { _initScroll() { if (!this.$refs.wrapper) { return } this.scroll = new BScroll(this.$refs.wrapper, { probeType: this.probeType, click: this.click, eventPassthrough: this.direction === DIRECTION_V ? DIRECTION_H : DIRECTION_V }) if (this.listenScroll) { this.scroll.on('scroll', (pos) => { this.$emit('scroll', pos) }) } if (this.pullup) { this.scroll.on('scrollEnd', () => { if (this.scroll.y <= (this.scroll.maxScrollY + 50)) { this.$emit('scrollToEnd') } }) } if (this.beforeScroll) { this.scroll.on('beforeScrollStart', () => { this.$emit('beforeScroll') }) } }, disable() { this.scroll && this.scroll.disable() }, enable() { this.scroll && this.scroll.enable() }, refresh() { this.scroll && this.scroll.refresh() }, scrollTo() { this.scroll && this.scroll.scrollTo.apply(this.scroll, arguments) }, scrollToElement() { this.scroll && this.scroll.scrollToElement.apply(this.scroll, arguments) } }, watch: { data() { setTimeout(() => { this.refresh() }, this.refreshDelay) } } }</script><style scoped lang="stylus" rel="stylesheet/stylus"></style>
应用方法:
引入并注册组件:
import Scroll from 'base/scroll/scroll' export default { components: { Scroll } }
template结构以及style:
效果:图中轮播图+列表为滚动区域(recommend-content),即需要滚动的内容;对应的class:slider为轮播图,recommend-list为列表。由于轮播图数据以及list数据为动态获取,实际使用请填充你的数据,以上只给出关键结构。
已实现滚动:
阅读全文
0 0
- 基于vue2.0以及better-scroll实现scroll滑动组件及所实现组件的应用例子
- 使用better-scroll实现slider组件
- better-scroll的listview组件开发
- Scroll实现上下左右滑动
- vue2.0——项目开发_better-scroll 实现移动端滑动
- better-scroll滑动插件的使用
- Scroll(二)滑动的实现方式
- 13、vue2.0利用better-scroll实现轮播图可以自动轮播可以无限循环轮播
- better-scroll上拉加载 和下拉刷新 的使用(基于vue写成组件的形式)
- 微信小程序例子——如何使用scroll-view组件实现视图垂直滚动
- android---Scroll实现滑动效果
- ionic实现上拉加载更多(组件 ion-infinite-scroll使用,以及多次加载的问题)
- vue使用Better-Scroll实现纵向滚动
- 10、vue2.0中如何使用better-scroll
- 自定义scroll的实现
- 饿了么Vue2.0与better-scroll结合的使用
- better-scroll
- better-scroll
- 直接使用Sublime Text实现:HTTP访问URL+格式化返回的JSON字符串
- Django分页后,序号如何按照数据自增
- jQuery:动画大全
- Sssion与Cookie基本原理
- 浅谈HTTP中Get与Post的区别
- 基于vue2.0以及better-scroll实现scroll滑动组件及所实现组件的应用例子
- mysql installed big problem: table mysql.host not existence!
- 语音交互中的“等待体验”研究
- 引爆用户口碑:vivo X20星耀红圣诞限量版礼盒开售三天口碑走高
- 特斯拉再开挂:获UPS预购125辆电动半挂卡车
- Emix邮件服务器漏洞安全预警再升级 御界系统全面护航企业安全
- 迅雷链克(原玩客币)应用场景陆续上线,“摘星之旅”携手NASA领养星星
- 高通研发 NanoRings 技术,有望在 7nm 工艺下解决电容问题
- 让机器人 7x24 小时自动开发票,除了机器学习,还需要什么?