Backtop
Кнопка, которая прокручивает страницу к началу при нажатии. Появляется после превышения порога прокрутки. Поддерживает кольцо прогресса, размеры, формы и другое.
Basic
Прокрутите внутри блока вниз, чтобы увидеть появление кнопки backtop.
<VxBacktop />Progress Ring
Показывайте круговой индикатор прогресса вокруг кнопки с помощью show-progress.
<VxBacktop show-progress />Scroll Percentage
Показывайте процент прокрутки внутри кнопки через show-percent. Хорошо сочетается с show-progress.
<VxBacktop show-progress show-percent />Sizes
Три размера: small (32px), default (40px), large (48px).
<VxBacktop size="small" />
<VxBacktop size="default" />
<VxBacktop size="large" />Shape
Выбирайте между circle (по умолчанию) и square (скруглённый квадрат).
<VxBacktop shape="circle" />
<VxBacktop shape="square" />Tooltip
Добавьте нативную подсказку через prop tooltip.
<VxBacktop tooltip="Back to top" />Scroll To Element
Прокручивайте к конкретному элементу вместо начала страницы с помощью scroll-to.
<VxBacktop scroll-to="#my-section" />Custom Content
Используйте default slot для кастомного содержимого. Slot предоставляет percent.
<VxBacktop show-progress size="large">
<template #default="{ percent }">
<span>{{ percent }}%</span>
</template>
</VxBacktop>Full Custom Button
Используйте slot #button, чтобы заменить всю кнопку. Он получает { percent, visible, scroll, style } — вызовите scroll($event) для запуска прокрутки, примените style для позиционирования.
<VxBacktop>
<template #button="{ percent, scroll, style }">
<div :style="style" @click="scroll">
Back to top · {{ percent }}%
</div>
</template>
</VxBacktop>Disabled
<VxBacktop disabled />Auto Hide
Скрывать после периода бездействия (в мс). Кнопка появляется снова при прокрутке.
<!-- Hide after 3 seconds of no scrolling -->
<VxBacktop :auto-hide="3000" />API
VxBacktop Props
| Prop | Type | Default | Description |
|---|---|---|---|
target | string | HTMLElement | window | Контейнер прокрутки |
visibility-height | number | 200 | Порог прокрутки для показа (px) |
right | number | 40 | Отступ справа (px) |
bottom | number | 40 | Отступ снизу (px) |
smooth | boolean | true | Плавная анимация прокрутки |
size | 'small' | 'default' | 'large' | 'default' | Размер кнопки |
shape | 'circle' | 'square' | 'circle' | Форма кнопки |
show-progress | boolean | false | Показывать круговое кольцо прогресса |
show-percent | boolean | false | Показывать процент прокрутки |
scroll-to | string | — | CSS-селектор, к которому прокручивать вместо начала |
tooltip | string | — | Текст нативной подсказки |
disabled | boolean | false | Отключить кнопку |
auto-hide | number | 0 | Автоскрытие после бездействия (мс), 0 = выкл |
root-class | string | string[] | object | — | Класс на корневом элементе |
Events
| Event | Payload | Description |
|---|---|---|
click | MouseEvent | Клик по кнопке |
Slots
| Slot | Props | Description |
|---|---|---|
default | { percent: number } | Кастомное внутреннее содержимое (заменяет иконку) |
button | { percent: number, visible: boolean, scroll: Function, style: object } | Заменяет всю кнопку. Используйте style для позиционирования, вызывайте scroll($event) для запуска прокрутки. |
Exposed
| Name | Type | Description |
|---|---|---|
visible | Ref<boolean> | Видима ли кнопка |
scrollPercent | Ref<number> | Текущий процент прокрутки (0–100) |