核心价值基于 `prefers-reduced-motion` 按用户偏好减少或关闭动画,提升可访问性与输入稳定性。View Transitions 提供平滑的页面切换与组件过渡,并在降级时保持功能完整。组件动效治理.btn { transition: transform 200ms ease, opacity 200ms ease; }
.btn:active { transform: scale(0.98); }
@media (prefers-reduced-motion: reduce) {
.btn { transition: none; }
}
.modal { animation: fadeIn 240ms ease both; }
@keyframes fadeIn { from { opacity: 0 } to { opacity: 1 } }
@media (prefers-reduced-motion: reduce) {
.modal { animation: none; }
}
页面切换协同const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches
const nav = document.querySelectorAll('a[data-nav]')
nav.forEach((a) => {
a.addEventListener('click', (e) => {
e.preventDefault()
const href = a.getAttribute('href')
if (!href) return
if (!reduce && document.startViewTransition) {
document.startViewTransition(() => { window.location.href = href })
} else {
window.location.href = href
}
})
})
治理建议对影响输入反馈的动效进行降级或删除,尤其是长列表与表单交互。页面切换使用 View Transitions 时尊重用户偏好,确保降级路径无阻塞。与 `@starting-style` 结合稳定首帧,避免进入动画导致的视觉跳变。结论动效的目标是提升理解与反馈而非炫技。通过 `prefers-reduced-motion` 与 View Transitions 的协同治理,可在不牺牲可访问性的前提下获得更流畅与稳定的体验。

发表评论 取消回复