关于点击交互的思考
用户跟系统之间的交互,每天都需要成千上万次点击,而点击这个细节能做的文章其实很多。
Tab
Chrome给用户的感觉非常快,尤其是切换Tab的时候,仔细观察会发现,Tab切换时机是mousedown
,而不是click
。
Deepin Linux的文件管理器、Ubuntu文件管理器的Tab,Tab切换时机是click
,感觉会迟钝一些,尤其是鼠标操作比较慢的时候,感受更加明显。但是这种点击是可以“反悔”的,只需要挪走鼠标再松开就行了。
在iOS上,大部分App的TabBar都是press
触发,而不是release
时候触发,这样子做的原因主要是目标界面已经被加载了,如何快速提高界面响应程度变得更加重要。
长按
iPhone有个实体Home,仔细的用户会发现,这个Home键只有在release
的时候才会响应,手指只要不松开,还能多看几眼当前的App。而Home键的press
时间足够长,就会触发长按效果,弹出Siri。
iPhone也有实体音量键,而这个音量键在press
的时候就会立刻响应调整音量,而长按超过一段时间,就会进入连续调整音量。
iPhone还有实体开关机键,而这个键在press
的时候就并没有什么反应,短按松开后是锁屏,而长按超过一段时间,就会进入关机状态。
这些都是交互上细思极恐的细节,可能很多人天天在用,但没留意到。
鼠标滑过切换Tab
很多程序员都写过这样子的组件分类栏:
淘宝首页的分类导航
如果不经思考,可能很多人会使用mouseover
的直接切换,但仔细观察一下,分类名实际高度是很矮的,如果用户鼠标水平移动的时候有偏差,就会激活隔壁的分类,直接打断用户的操作。
比较好的办法是给个延时:
let switchTimer;
$('#categories').on('mouseover', ()=>{
clearTimeout(switchTimer)
switchTimer = setTimeout(loadCategory, 300) //延时加载
})
总结
细节是魔鬼