细节决定成败:网页元素微交互的艺术与科学
微交互 (Micro-interactions) 是指用户在与界面进行交互时,系统给予的细微、单一任务的反馈。它们通常只涉及一个用例,例如:点赞、切换开关、下拉刷新或输入框聚焦。
在 UI 设计中,微交互不仅仅是装饰,它们是人机沟通的桥梁。优秀的微交互可以:
丹·萨弗 (Dan Saffer) 提出的微交互模型:触发器启动交互,规则决定发生什么,反馈让用户知道发生了什么,循环决定交互的持续时间。
最基础的微交互工具。用于在两个状态之间平滑切换。
.btn {
background: blue;
transition: background 0.3s ease;
}
.btn:hover {
background: red;
}
关键属性:
transition-property: 要动画化的属性 (如 all, opacity)。transition-duration: 持续时间 (如 0.3s)。transition-timing-function: 速度曲线 (如 ease, linear, cubic-bezier)。用于更复杂的、多步骤的交互,不依赖于 hover 等伪类触发。
@keyframes slideIn {
0% { transform: translateX(-100%); }
100% { transform: translateX(0); }
}
.box {
animation: slideIn 0.5s forwards;
}
优势: 可以精细控制每一帧 (Keyframes),实现循环、暂停等复杂逻辑。
现实世界中没有物体是瞬间启动或停止的。使用 cubic-bezier 可以让交互更有物理质感。
不仅仅是变色,可以加入光晕、位移或背景流动,提升点击欲望。
::before 伪元素制作光扫效果,配合 box-shadow 制作发光。
清晰地展示“开”与“关”的状态,通常伴随颜色的变化和滑块的位移。
缓解用户等待焦虑。旋转的 Spinner 是最经典的微交互。
通过阴影和位移模拟物理层级,告诉用户“这个元素是可点击的”。
Hover to see elevation
transform 和 opacity 进行动画,因为它们不触发重排 (Reflow),性能最好。cursor: pointer。prefers-reduced-motion)。width, height, top, left 上使用动画,导致页面卡顿。