495 字
1 分钟
原生 JavaScript 也能写出舒服的交互
阅读进度0%
输入关键词 本文为原创示例,讨论本站交互设计原则,并不宣称项目所有交互已经通过验收。
先写状态,再写动画
分类筛选至少有当前分类、当前页和筛选后的文章集合三个状态。切换分类时应该回到第一页,否则之前的第二页可能在新分类里不存在。分页按钮的禁用状态和屏幕阅读器提示,也应由同一份结果计算。
隐藏文章必须真的退出布局和焦点顺序,不能只把透明度设为零。对简单卡片列表来说,原生 hidden 属性很直接;动画只是状态变化的辅助。
按钮做按钮的事
可点击控件使用原生按钮,跳转文章使用链接。菜单按钮同步 aria-expanded,分页指明当前页,筛选按钮同步 aria-pressed。这些细节让键盘操作与鼠标操作保持同样的结果。
播放器收起时保留同一个播放按钮,比再增加一个没有播放意义的图标更清楚。面板隐藏后,内部焦点应该返回可见触点。
导航也是生命周期
站内局部导航会替换 DOM。缓存里的“已初始化”属性,不代表新按钮真的拥有监听器;重复执行脚本则可能让一次点击触发两次切换。
应该明确哪些监听只注册一次、哪些属于当前页面。离开页面时释放属于它的全局监听;进入新 DOM 时重新绑定局部控件。验收既要直接打开页面,也要测试离开再返回。
轻量不等于省略这些边界。交互舒服,往往是因为状态与生命周期足够清楚。
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
原生 JavaScript 也能写出舒服的交互
https://example.com/posts/ta-tech-interaction/ 部分信息可能已经过时
相关文章 智能推荐