步骤
本页内容
current 是正在进行的那一步的下标。它之前的都已完成并打上对勾;它之后的都还没到。当前那一步带着 aria-current="step",所以除了配色之外还会被播报出来。
基础步骤
安装
写一个页面
构建
部署
steps({
current: 1,
items: [
{ title: '安装' },
{ title: '写一个页面' },
{ title: '构建' },
{ title: '部署' },
],
})带描述
安装
npm install -D sitelo
写一个页面
src/index.ht.js
构建
sitelo build
部署
发布 dist/
steps({
current: 2,
items: [
{ title: '安装', description: 'npm install -D sitelo' },
{ title: '写一个页面', description: 'src/index.ht.js' },
{ title: '构建', description: 'sitelo build' },
{ title: '部署', description: '发布 dist/' },
],
})垂直
当描述超过寥寥几个字时,竖排更合适。
装上这个包
sitelo 自带 Vite,所以别的什么都不用装。
写一个返回 HTML 的函数
src/ 里放一个文件,就已经是一整个站点了。
把产物发布出去
dist/ 就是纯静态文件——哪家托管都收。
steps({
direction: 'vertical',
current: 1,
items: [
{ title: '装上这个包', description: 'sitelo 自带 Vite,所以别的什么都不用装。' },
{ title: '写一个返回 HTML 的函数', description: 'src/ 里放一个文件,就已经是一整个站点了。' },
{ title: '把产物发布出去', description: 'dist/ 就是纯静态文件——哪家托管都收。' },
],
})一步都还没做
安装
配置
部署
steps({ current: 0, items: ['安装', '配置', '部署'] })全部完成
把 current 设到最后一个下标之后,所有步骤就都读作已完成。
安装
配置
部署
steps({ current: 3, items: ['安装', '配置', '部署'] })在手机上
横排在窄屏上无处可去,所以宽度低于 40rem 时它会自己变成竖排——不需要任何属性。把这个窗口拉窄就能看到。
给它命名
这个列表是一个 <ol>,顺序本来就写在里面了。当页面上有不止一组步骤、需要区分时,再加上 label。
构建
上传
刷新缓存
steps({
label: '部署进度',
current: 1,
items: ['构建', '上传', '刷新缓存'],
})让流程往前走
状态就是三个类名加一个 aria-current,分散在每一步上。setStep() 会把它们一起挪动,所以在浏览器里推进的向导只是一次调用,而不是一个循环。
索引越过最后一步,就把每一步都留在完成状态——一个走完的流程正是这个样子。或者直接写在事件属性里,什么都不用打包:
button({ onclick: "import('/su/steps.js').then(m=>m.set('checkout',2))" }, 'Next')或者从你自己的模块里调用——如果本来就有一个在跑的话:
import { setStep } from 'sitelo/ui/client'
setStep('checkout', 2)属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
items | Array | [] | 字符串,或 { title, description } 对象。 |
current | number | 0 | 正在进行那一步的下标。 |
direction | 'horizontal' | 'vertical' | 'horizontal' | 排布方向。横排在 40rem 以下会转成竖排。 |
label | string | — | 列表的无障碍名称。 |