# BackTop 回到顶部 ### 介绍 返回页面顶部的操作按钮。 ### 引入 通过以下方式来全局注册组件,更多注册方式请参考[组件注册](#/zh-CN/advanced-usage#zu-jian-zhu-ce)。 ```js import { createApp } from 'vue'; import { BackTop } from 'vant'; const app = createApp(); app.use(BackTop); ``` ## 代码演示 ### 基础用法 请滚动右侧的示例页面,当页面滚动 `200px` 时,右下角会出现返回顶部按钮。 ```html ``` ```js export default { setup() { const list = [...Array(50).keys()]; return { list }; }, }; ``` ### 自定义位置 通过 `right` 和 `bottom` 属性来设置组件距离右侧和底部的位置。 ```html ``` ```js export default { setup() { const list = [...Array(50).keys()]; return { list }; }, }; ``` ### 自定义内容 使用默认插槽来自定义组件展示的内容。 ```html 返回顶部 ``` ```js export default { setup() { const list = [...Array(50).keys()]; return { list }; }, }; ``` ### 设置滚动目标 可以通过 `target` 属性来设置触发滚动的目标对象,支持传入选择器或 `HTMLElement`。 ```html
``` ```js export default { setup() { const list = [...Array(50).keys()]; return { list }; }, }; ``` ### 瞬间滚动 当设置 `immediate` 属性后,页面滚动的过程不再有过渡效果,而是瞬间滚动到顶部。 ```html ``` ## API ### Props | 参数 | 说明 | 类型 | 默认值 | | --- | --- | --- | --- | | target | 触发滚动的目标对象,支持传入选择器或 DOM 元素,默认最近的父级滚动容器 | _string \| HTMLElement_ | - | | right | 距离页面右侧的距离,默认单位为 `px` | _number \| string_ | `30` | | bottom | 距离页面底部的距离,默认单位为 `px` | _number \| string_ | `40` | | offset | 滚动高度达到此参数值时才显示组件 | _number_ | `200` | | teleport | 指定挂载的节点,等同于 Teleport 组件的 [to 属性](https://cn.vuejs.org/api/built-in-components.html#teleport) | _string \| Element_ | `body` | | immediate `v4.0.9` | 是否瞬间滚动到顶部 | _boolean_ | `false` | | z-index | 设置组件的 z-index 层级 | _number \| string_ | `100` | ### Events | 事件名 | 说明 | 回调参数 | | ------ | -------------- | ------------------- | | click | 点击组件时触发 | _event: MouseEvent_ | ### Slots | 名称 | 说明 | | ------- | ------------------ | | default | 自定义按钮显示内容 | ### 类型定义 组件导出以下类型定义: ```ts import type { BackTopProps, BackTopThemeVars } from 'vant'; ``` ## 主题定制 ### 样式变量 组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](#/zh-CN/config-provider)。 | 名称 | 默认值 | 描述 | | ------------------------- | ----------------- | ---- | | --van-back-top-size | _40px_ | - | | --van-back-top-icon-size | _20px_ | - | | --van-back-top-right | _30px_ | - | | --van-back-top-bottom | _40px_ | - | | --van-back-top-z-index | _100_ | - | | --van-back-top-text-color | _#fff_ | - | | --van-back-top-background | _var(--van-blue)_ | - |