zx-backtop 回到顶部
介绍
回到顶部按钮组件,参考 Element Plus Backtop 组件设计。用于长页面快速返回顶部的场景,支持多种样式、动画效果及位置自定义,使用简单灵活。
平台兼容性
H5 |
微信小程序 |
支付宝小程序 |
App |
✓ |
✓ |
✓ |
✓ |
引入
<zx-backtop :scrollTop="scrollTop"></zx-backtop>
基础用法
基础示例
滚动页面,当滚动高度超过 200rpx 时,回到顶部按钮会出现在页面右下角。
<template>
<view>
<scroll-view scroll-y @scroll="scroll">
<zx-backtop :scrollTop="scrollTop" @click="handleBacktopClick"></zx-backtop>
</scroll-view>
</view>
</template>
<script setup>
import { ref } from 'vue';
const scrollTop = ref(0);
const scroll = (e) => {
scrollTop.value = e.detail.scrollTop;
};
const handleBacktopClick = () => {
console.log('返回顶部');
};
</script>
自定义内容
显示区域被固定为 80rpx * 80rpx 的区域,其中的内容可支持自定义。
<zx-backtop :scrollTop="scrollTop" :bottom="200">
<view style="
height: 100%;
width: 100%;
background-color: #f2f5f6;
box-shadow: 0 0 6rpx rgba(0,0,0,.12);
text-align: center;
line-height: 80rpx;
color: #1989fa;
">
UP
</view>
</zx-backtop>
自定义样式
<zx-backtop
:scrollTop="scrollTop"
mode="square"
backgroundColor="#409EFF"
iconColor="#ffffff"
size="100rpx"
></zx-backtop>
自定义位置
<zx-backtop
:scrollTop="scrollTop"
:left="100"
:bottom="200"
></zx-backtop>
自定义触发高度
<zx-backtop
:scrollTop="scrollTop"
:visibilityHeight="300"
></zx-backtop>
自定义动画效果
<zx-backtop
:scrollTop="scrollTop"
animation="scale"
></zx-backtop>
添加震动反馈
<zx-backtop
:scrollTop="scrollTop"
:vibrate="true"
></zx-backtop>
自定义图标
<zx-backtop
:scrollTop="scrollTop"
iconName="rocket"
></zx-backtop>
事件监听
<zx-backtop
:scrollTop="scrollTop"
@click="handleClick"
@show="handleShow"
@hide="handleHide"
></zx-backtop>
API
Attributes
参数 |
说明 |
类型 |
默认值 |
visibilityHeight |
滚动高度达到此参数值才出现 |
Number |
200 |
right |
控制其显示位置,距离页面右边距 |
Number |
10 |
bottom |
控制其显示位置,距离页面底部距离 |
Number |
120 |
left |
控制其显示位置,距离页面左边距 |
Number |
0 |
scrollTop |
当前滚动距离,用于控制显示/隐藏 |
Number |
0 |
duration |
返回顶部滚动时间(ms) |
Number |
300 |
zIndex |
层级 |
Number |
9999 |
mode |
形状,可选值:circle、square |
String |
circle |
backgroundColor |
背景色 |
String |
#ffffff |
size |
组件大小 |
String |
80rpx |
iconName |
图标名称,可选:arrow-up、rocket、top、dingbu |
String |
arrow-up |
iconColor |
图标颜色 |
String |
#999999 |
iconSize |
图标大小 |
String |
50rpx |
animation |
动画效果,可选值:fade、slide、scale |
String |
fade |
vibrate |
点击时是否震动反馈 |
Boolean |
false |
customClass |
自定义类名 |
String |
— |
Events
事件名 |
说明 |
回调参数 |
click |
点击按钮触发 |
Function |
show |
按钮显示时触发 |
Function |
hide |
按钮隐藏时触发 |
Function |
Slots
注意事项
- 组件需要传入
scrollTop
参数,该参数为当前滚动距离,可以通过监听滚动事件获取
- 图标使用组件内置的几种图标,包括:arrow-up, rocket, top, dingbu
- 自定义位置时,如果设置了
left
属性,优先级高于 right
属性
- 组件默认在滚动超过 200rpx 时显示,可通过
visibilityHeight
参数自定义
- 位置参数
right
、bottom
、left
单位为 rpx,不需要带单位
- 尺寸参数
size
、iconSize
需要带单位,推荐使用 rpx
更新日志
- 重构组件名称为
zx-backtop
,与 Element Plus 保持一致
- 优化 API 设计,使用
visibilityHeight
替代 top
参数
- 简化位置配置,使用数字类型的
right
、bottom
、left
参数
- 优化事件命名,使用
click
、show
、hide
替代原有事件名
- 改进动画效果和样式设计
- 增加更多自定义选项和扩展性