You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.5 KiB
106 lines
2.5 KiB
4 years ago
|
<template>
|
||
|
<view class="u-demo">
|
||
|
<view class="u-demo-wrap">
|
||
|
<view class="u-demo-title">演示效果</view>
|
||
|
<view class="u-demo-area">
|
||
|
<view class="u-no-demo-here">滚动页面即可在右下角看到返回顶部的按钮</view>
|
||
|
</view>
|
||
|
<u-back-top :scrollTop="scrollTop" :mode="mode"
|
||
|
:bottom="bottom" :right="right" :top="top" :icon="icon" :custom-style="customStyle"
|
||
|
:icon-style="iconStyle" :tips="tips"
|
||
|
>
|
||
|
</u-back-top>
|
||
|
</view>
|
||
|
<view class="u-config-wrap">
|
||
|
<view class="u-config-title u-border-bottom">
|
||
|
参数配置
|
||
|
</view>
|
||
|
<view class="u-config-item">
|
||
|
<view class="u-item-title">模式</view>
|
||
|
<u-subsection :list="['圆形', '方形']" @change="modeChange"></u-subsection>
|
||
|
</view>
|
||
|
<view class="u-config-item">
|
||
|
<view class="u-item-title">组件位置</view>
|
||
|
<u-subsection :list="['默认', '自定义']" @change="positionChange"></u-subsection>
|
||
|
</view>
|
||
|
<view class="u-config-item">
|
||
|
<view class="u-item-title">显示组件的滚动条距离</view>
|
||
|
<u-subsection current="1" :list="['200', '400', '600']" @change="scrollTopChange"></u-subsection>
|
||
|
</view>
|
||
|
<view class="u-config-item">
|
||
|
<view class="u-item-title">自定义样式</view>
|
||
|
<u-subsection current="1" :list="['是', '否']" @change="styleChange"></u-subsection>
|
||
|
</view>
|
||
|
</view>
|
||
|
</view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
data() {
|
||
|
return {
|
||
|
scrollTop: 0,
|
||
|
mode: 'circle',
|
||
|
bottom: 200,
|
||
|
right: 40,
|
||
|
top: 400,
|
||
|
icon: 'arrow-upward',
|
||
|
iconStyle: {
|
||
|
color: '#909399',
|
||
|
fontSize: '38rpx'
|
||
|
},
|
||
|
customStyle: {},
|
||
|
tips: ''
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
modeChange(index) {
|
||
|
this.mode = !index ? 'circle' : 'square';
|
||
|
},
|
||
|
positionChange(index) {
|
||
|
if(index == 0) {
|
||
|
this.bottom = 200;
|
||
|
this.right = 40;
|
||
|
} else {
|
||
|
this.bottom = 400;
|
||
|
this.right = 80;
|
||
|
}
|
||
|
},
|
||
|
scrollTopChange(index) {
|
||
|
this.top = [200, 400, 600][index];
|
||
|
},
|
||
|
styleChange(index) {
|
||
|
if(index == 0) {
|
||
|
this.icon = 'arrow-up';
|
||
|
this.iconStyle = {
|
||
|
color: '#2979ff',
|
||
|
fontSize: '34rpx'
|
||
|
};
|
||
|
this.customStyle = {
|
||
|
backgroundColor: '#a0cfff',
|
||
|
color: '#2979ff'
|
||
|
};
|
||
|
this.tips = '顶部';
|
||
|
} else {
|
||
|
this.icon = 'arrow-upward';
|
||
|
this.iconStyle = {
|
||
|
color: '#909399',
|
||
|
fontSize: '38rpx'
|
||
|
};
|
||
|
this.customStyle = {};
|
||
|
this.tips = '';
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
onPageScroll(e) {
|
||
|
this.scrollTop = e.scrollTop;
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
.u-demo {
|
||
|
height: 200vh;
|
||
|
}
|
||
|
</style>
|