跳转到内容

回到顶部 back-top

导航组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

滚过 200px 按钮才露面,点它滚回顶部

第 1 段内容,往下滚。

第 2 段内容,往下滚。

第 3 段内容,往下滚。

第 4 段内容,往下滚。

第 5 段内容,往下滚。

第 6 段内容,往下滚。

第 7 段内容,往下滚。

第 8 段内容,往下滚。

第 9 段内容,往下滚。

第 10 段内容,往下滚。

第 11 段内容,往下滚。

第 12 段内容,往下滚。

第 13 段内容,往下滚。

第 14 段内容,往下滚。

第 15 段内容,往下滚。

第 16 段内容,往下滚。

第 17 段内容,往下滚。

第 18 段内容,往下滚。

第 19 段内容,往下滚。

第 20 段内容,往下滚。

露面阈值

visibility-height 决定滚过多少像素按钮才出现

第 1 段内容。

第 2 段内容。

第 3 段内容。

第 4 段内容。

第 5 段内容。

第 6 段内容。

第 7 段内容。

第 8 段内容。

第 9 段内容。

第 10 段内容。

第 11 段内容。

第 12 段内容。

第 13 段内容。

第 14 段内容。

第 15 段内容。

第 16 段内容。

第 17 段内容。

第 18 段内容。

第 19 段内容。

第 20 段内容。

滚动方式

behavior=auto 一步跳回顶部,smooth 平滑滚过去

smooth · 第 1 段

smooth · 第 2 段

smooth · 第 3 段

smooth · 第 4 段

smooth · 第 5 段

smooth · 第 6 段

smooth · 第 7 段

smooth · 第 8 段

smooth · 第 9 段

smooth · 第 10 段

smooth · 第 11 段

smooth · 第 12 段

smooth · 第 13 段

smooth · 第 14 段

smooth · 第 15 段

smooth · 第 16 段

auto · 第 1 段

auto · 第 2 段

auto · 第 3 段

auto · 第 4 段

auto · 第 5 段

auto · 第 6 段

auto · 第 7 段

auto · 第 8 段

auto · 第 9 段

auto · 第 10 段

auto · 第 11 段

auto · 第 12 段

auto · 第 13 段

auto · 第 14 段

auto · 第 15 段

auto · 第 16 段

语气与尺寸

tone 决定按钮用哪族颜色,size 换一档尺寸;translations 换掉读屏念出的名字

第 1 段内容。

第 2 段内容。

第 3 段内容。

第 4 段内容。

第 5 段内容。

第 6 段内容。

第 7 段内容。

第 8 段内容。

第 9 段内容。

第 10 段内容。

第 11 段内容。

第 12 段内容。

第 13 段内容。

第 14 段内容。

第 15 段内容。

第 16 段内容。

第 17 段内容。

第 18 段内容。

第 19 段内容。

第 20 段内容。

产物

自定义元素<xh-back-top>
Vue 组件XhBackTopRoot XhBackTopTrigger
组合式函数useBackTop
状态机backTopMachine
皮肤@xihan-ui/styles/back-top.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="back-top"root · trigger

Props

属性类型必填说明
visibilityHeightnumber滚过这么多像素按钮才露面,默认 200。
behaviorBackTopBehavior滚回顶部的方式,默认 smooth。
translationsPartial<BackTopTranslations>
toneTone语气:brand / neutral / success / warning / danger / info,决定按钮用哪族颜色。
sizeSize尺寸:sm / md / lg。
onVisibleChange(details: BackTopVisibleChangeDetails) => void露面与否变化时回调。

状态机

状态hidden · visible

事件SCROLL.RESOLVE · TRIGGER.CLICK

判据shouldShow · shouldHide

connect API

useBackTop 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
visibleboolean按钮此刻露不露面。
scrollToTop() => void程序化滚回顶部,与点按钮走同一条路。
getRootProps() => T['element']
getTriggerProps() => T['button']

键盘

规格出处:W3C APG

按键生效条件行为
Enter / Spacefocus in trigger滚回顶部;按 behavior 决定是一步到位还是平滑滚过去
Tab / Shift+Tabtrigger 露面时走到按钮上;收起时整个 root 带 hidden,按钮不在 Tab 序列里

Released under The MIT License