Former-commit-id: 584a9329d7868d9e9aac27af8bb8548899f6bb6a [formerly 584a9329d7868d9e9aac27af8bb8548899f6bb6a [formerly 584a9329d7868d9e9aac27af8bb8548899f6bb6a [formerly 584a9329d7868d9e9aac27af8bb8548899f6bb6a [formerly d9f7b6d61f9bca4dd01d9bdeaa3e05689a4c957b [formerly 685176322dd7a7c07d9adc1afe718ac8769c6e2b]]]]] Former-commit-id: 88308a03ec90c920658d225ca92d3d44329ae488 Former-commit-id: 658fe4466da6dfac5fca7f4d4f587300c297a6f4 Former-commit-id: e2f583b6a7c845b26d5713ab54427c1a30eae7c0 [formerly 7f060c7800831c725cce856ac0b97e64e8dc7df3] Former-commit-id: b4a0e21cd492e0c91637c94e9ab9cbf7e896c52d Former-commit-id: 52a1a9c80a6951a0341fbfe6ca6c748dae876747 Former-commit-id: 508b9083504c48c021f3664bd2f398aacce556f3 Former-commit-id: 5885f81448c937e04528c45ea8bd74f72dac37a9 Former-commit-id: e0337459e2f83705c4cf519840fd9532ed2a43e0
107 lines
2.8 KiB
Vue
107 lines
2.8 KiB
Vue
<template>
|
|
<d2-container>
|
|
<template slot="header">滚动定位</template>
|
|
<el-row :gutter="20">
|
|
<el-col :span="8">
|
|
<div ref="wrapper" class="demo-bs-wrapper">
|
|
<div>
|
|
<div v-for="n in 100" :key="n" class="demo-bs-item" :id="`demo-bs-item-${n}`">n : {{n}}</div>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
<el-col :span="16">
|
|
<div class="d2-mb">
|
|
<p>滚动时间 ms</p>
|
|
<el-slider v-model="time" :min="100" :max="3000"></el-slider>
|
|
</div>
|
|
<div class="d2-mb">
|
|
<el-button-group>
|
|
<el-button @click="handleScrollTo(100)">滚动到100像素位置</el-button>
|
|
<el-button @click="handleScrollTo(300)">滚动到300像素位置</el-button>
|
|
</el-button-group>
|
|
</div>
|
|
<div class="d2-mb">
|
|
<el-button-group>
|
|
<el-button @click="handleScrollBy(50)">向下滚动50像素</el-button>
|
|
<el-button @click="handleScrollBy(-50)">向上滚动50像素</el-button>
|
|
</el-button-group>
|
|
</div>
|
|
<div class="d2-mb">
|
|
<el-button-group>
|
|
<el-button @click="handleScrollToElement(4)">滚动到第四个</el-button>
|
|
<el-button @click="handleScrollToElement(14)">滚动到第十四个</el-button>
|
|
<el-button @click="handleScrollToElement(24)">滚动到第二十四个</el-button>
|
|
</el-button-group>
|
|
</div>
|
|
</el-col>
|
|
</el-row>
|
|
<template slot="footer">
|
|
<d2-demo-link-btn title="文档" link="http://ustbhuangyi.github.io/better-scroll/doc/zh-hans/"/>
|
|
</template>
|
|
</d2-container>
|
|
</template>
|
|
|
|
<script>
|
|
// 插件
|
|
import BScroll from 'better-scroll'
|
|
|
|
export default {
|
|
data () {
|
|
return {
|
|
time: 300,
|
|
BS: null
|
|
}
|
|
},
|
|
mounted () {
|
|
this.scrollInit()
|
|
},
|
|
beforeDestroy () {
|
|
this.scrollDestroy()
|
|
},
|
|
methods: {
|
|
handleScrollTo (y) {
|
|
this.BS.scrollTo(0, -y, this.time)
|
|
},
|
|
handleScrollBy (y) {
|
|
this.BS.scrollBy(0, -y, this.time)
|
|
},
|
|
handleScrollToElement (n) {
|
|
this.BS.scrollToElement(`#demo-bs-item-${n}`, this.time)
|
|
},
|
|
scrollInit () {
|
|
this.BS = new BScroll(this.$refs.wrapper, {
|
|
mouseWheel: true,
|
|
scrollbar: {
|
|
fade: true,
|
|
interactive: false
|
|
}
|
|
})
|
|
},
|
|
scrollDestroy () {
|
|
if (this.BS) {
|
|
this.BS.destroy()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
@import '~@/assets/style/public.scss';
|
|
.demo-bs-wrapper {
|
|
height: 400px;
|
|
position: relative;
|
|
overflow: hidden;
|
|
border: 1px solid $color-border-1;
|
|
border-radius: 4px;
|
|
.demo-bs-item {
|
|
line-height: 40px;
|
|
padding-left: 10px;
|
|
border-bottom: 1px solid $color-border-4;
|
|
&:last-child {
|
|
border-bottom: none;
|
|
}
|
|
}
|
|
}
|
|
</style>
|