Vue中的Better-scroll

文章描述:

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

better-scroll是什么?

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

 

安装

安装带有所有插件的 BetterScroll

npm install better-scroll -S

核心滚动,大部分情况可能只需要一个简单的滚动

npm install @better-scroll/core
import BetterScroll from 'better-scroll'
 
let bs = new BetterScroll('.wrapper', {
  movable: true,
  zoom: true
})
 
import BScroll from '@better-scroll/core'
let bs = new BScroll('.wrapper', {})

滚动原理

浏览器的滚动原理: 浏览器的滚动条大家都会遇到,当页面内容的高度超过视口高度的时候,会出现纵向滚动条;当页面内容的宽度超过视口宽度的时候,会出现横向滚动条。也就是当我们的视口展示不下内容的时候,会通过滚动条的方式让用户滚动屏幕看到剩余的内容。

 

Vue中使用

template

<template>
	<div class="">
		<div class="wrapper" ref="wrapper">
		    <ul class="content">
		      <li v-for="(item,index) in 30">...</li>
		    </ul>
		</div>
		<ul>
			<li v-for="(item,index) in 20">
				666
			</li>
		</ul>
		<Tabbar></Tabbar>
	</div>
</template>

script

probeType: 3, // 0,1,2,3 3就是只要在运行时就出发scroll事件
click: true, // 是否允许点击
pullUpLoad: true // 上啦加载更多,默认是false

import Tabbar from '../components/common/Tabbar.vue'
import BetterScroll from 'better-scroll'
export default{
	name:"My",
	components:{
		Tabbar
	},
	data(){
		return{
			scroll:''
		}
	},
	created() {
            this.$nextTick(() => {
	        //this.scroll = new BetterScroll(this.$refs.wrapper)
                this.scroll = new BetterScroll(this.$refs.wrapper, {
                    probeType: 3,
                    bounce: false,
                    click:true
		})
    
            })
	}
}

 

style

.wrapper{
	height: 400px;
	overflow: hidden;
}

 

第二种

template

<template>
	<div class="">
		<section ref="wrapper">
			<div>
				<div v-for="(item,index) in 40">
					{{item}}
				</div>
			</div>
		</section>
	</div>
</template>

script

import BetterScroll from 'better-scroll'
export default{
	name:"My",
	components:{
		
	},
	data(){
		return{
			scroll:''
		}
	},
	created() {
            this.$nextTick(() => {
		this.scroll = new BetterScroll(this.$refs.wrapper)
            })
        }
}

style

section{
	flex: 1;
	overflow: hidden;
	height:100vh;
}

 

发布时间:2022/07/22

发表评论