触发方式
内容与动效库的用途分类同步,所有分类处于同一层。进入导航区域查看名称,点击直接选中分类,再次点击保持选择。支持触屏点按;方向键和 Home/End 在同一层移动焦点。移开、离焦或 Escape 后平滑收回横线并隐藏文字,保留当前选择。 详情页播放按钮同步演示两侧:普通动效从初态进入终态,再返回初态一次;加载类按循环配置持续播放。暂停保留当前画面,继续时从暂停进度接续。
起点与终点
单层用途分类;横线从收拢态平滑伸出,最大长度 38 px。整体缩放 100%,在初态和展开时一致;横线、间距和标签同步缩放。
时序
演示与收回时长 400 ms,触发延迟 0 ms,三次贝塞尔曲线 cubic-bezier(0.4, 0, 0.2, 1)。悬停伸展使用固定响应的解析临界阻尼弹簧;时长与曲线用于演示轨道和移开收回。
进入与退出
初态显示各用途分类的短线。进入导航区域后,附近横线按距离伸长并显示名称;点击直接选中分类。移开时平滑收回横线并淡出名称,保留当前选择。完成后保留终态,不自动重复。
重复操作与打断
指针位置、焦点和当前项为临时交互状态,不写入配置。点击直接切换分类;方向键和 Home/End 在同一层移动焦点。横线使用持续时钟跟随指针,换方向时保留当前速度。移开、焦点移出或按 Escape 后保留当前项,标签在原来的位置淡出,横线从当前长度平滑收回;退出始终接续当前画面,不排队。
减少动态效果
遵循系统 prefers-reduced-motion,跳过延迟、循环和动画,直接呈现目标帧。观察倍速只修改 Motion 控制器 speed,不写入配置。
默认配置
这些数值来自当前维护的默认配置;编辑器草稿和调整后的导出可以不同。
{
"schemaVersion": 2,
"recipeId": "mini-sidebar",
"durationMs": 400,
"delayMs": 0,
"easing": [
0.4,
0,
0.2,
1
],
"offsetX": 0,
"offsetY": 0,
"scale": 1,
"loop": false,
"interruption": "retarget",
"tracks": [
{
"part": "item0",
"property": "y",
"values": [
-10.5,
-18
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "item1",
"property": "y",
"values": [
-3.5,
-6
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "item2",
"property": "y",
"values": [
3.5,
6
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "item3",
"property": "y",
"values": [
10.5,
18
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line0",
"property": "width",
"values": [
8,
13.457852349679698
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line0",
"property": "opacity",
"values": [
0.2,
0.34554272932479196
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line0",
"property": "scaleY",
"values": [
0.76,
0.8182170917299167
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line1",
"property": "width",
"values": [
18,
31.061863099396838
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line1",
"property": "opacity",
"values": [
0.96,
0.96
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line1",
"property": "scaleY",
"values": [
0.76,
0.9689898095903494
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line2",
"property": "width",
"values": [
8,
38
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line2",
"property": "opacity",
"values": [
0.2,
1
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line2",
"property": "scaleY",
"values": [
0.76,
1.08
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line3",
"property": "width",
"values": [
8,
27.59279464909526
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line3",
"property": "opacity",
"values": [
0.2,
0.7224745239758736
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "line3",
"property": "scaleY",
"values": [
0.76,
0.9689898095903494
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "panel",
"property": "x",
"values": [
-8,
0
],
"times": [
0,
1
],
"start": 0,
"span": 0.8461538461538461
},
{
"part": "panel",
"property": "y",
"values": [
6,
6
],
"times": [
0,
1
],
"start": 0,
"span": 1
},
{
"part": "panel",
"property": "scale",
"values": [
0.96,
1
],
"times": [
0,
1
],
"start": 0,
"span": 0.8461538461538461
},
{
"part": "panel",
"property": "opacity",
"values": [
0,
1
],
"times": [
0,
1
],
"start": 0,
"span": 0.5384615384615384
}
]
}源码与复用
GitHub 对应示例提供公开渲染源码、默认配置和运行入口。复用前请阅读交互说明,并保留随源码附带的第三方与字体许可;完整网页编辑器由独立工程维护。
用于自己的项目
进入编辑器运行真实预览并比较调整;本说明页不另造一份近似演示。把导出用于自己的项目后,重新检查内容、输入、焦点与布局。
目录来源标注:Ariadne. 第三方示例保留自己的许可与署名;公开仓库包含全部当前动效的渲染源码;完整编辑器由独立工程维护。