博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个很酷的设计:Breaking down Amazon’s mega dropdown
阅读量:2435 次
发布时间:2019-05-10

本文共 1180 字,大约阅读时间需要 3 分钟。

       文章来源URL: 

        奉上我对本文的理解:

        该文大致讲的就是作者从亚马逊网站首页上商品分类的下拉菜单的体验效果引出了一个问题:设计一个什么样的下拉菜单,能让用户得到最好的体验。

        在没有做任何的处理情况下,一个下拉菜单当鼠标迅速在不同的一级菜单上快速移动的时候,子菜单会很快速的变化切换,作者举例了亚马逊下拉菜单改版前的效果。当用户想浏览子菜单(或者说子分类)的时候,移动鼠标的位置就得很小心了,因为一旦鼠标滑过其他一级菜单时候,你想要浏览的子菜单就会被切换成鼠标hover时的一级菜单的子菜单,无疑这种情况下的用户体验很糟糕的。

        大多数情况下,在做这类下拉菜单的效果时候还是会加上一个延迟处理,拿oldKhan Academy举例。就是说当鼠标迅速滑过一组一级菜单的时候,如果在菜单上停留的时间小于一个设定的时间参数时,则子菜单不会切换(或者不会显示),实际上应该就是这样的。作者举了一个反例,就是前端框架bootstrap的下拉效果,尽管他很喜欢bootstrap,但是在这里bootstrap的下拉菜单的体验上确实没做到位,可以说是个BUG。

        然后就是分析亚马逊改版后的效果是怎么脱离延迟处理来达到相同目的的。通过探测用户鼠标移动的行为来判断用户是否是想要查看子分类,在文章中截图的三角蓝色区块标记的就是用户想要查看子菜单意图的鼠标移动路径范围。如果是这种情况,那么当前的子菜单将会有一个延迟处理,会多显示一会儿。至于怎么计算这个三角的蓝色区块呢?实际上很容易,当前鼠标所处位

置和子菜单的顶部还有子菜单的底部三个顶点构成了这个三角区域。如果下一个鼠标移动的位置处于这个三角区域内则可以认为用户很可能是想查看当前鼠标所处一级菜单的子分类,那么就可以触发这个延迟处理了。作者讲述到在图中所示那样,就算用户鼠标hovers over “Appstore forAndroid” momentarily,the user is probably heading toward “Learn more about Cloud Drive.” 瞬间的移动,可以根据上面所述的原因来认为,用户实际是想查看子菜单里的Learn more about Cloud Drive。而如果鼠标移动的路径不在三角区块内,则不做任何处理,迅速的切换。

不得不承认这个效果很酷,很人性化的设计。作者从亚马逊上扒下了部分代码,在几位朋友的协助下了解线性代数的相关知识来如何构建这个起关键作用的“蓝色三角区块”,并封装成了一个 jquery插件叫做 jQuery-menu-aim,并且应用到了 new Khan Academy上。

        这个插件在github 上已经开源了,我们随时都可以使用它。作者做的相当好了,如果说有什么想法的话我只能说:It’svery cool! Well done!

转载地址:http://ywemb.baihongyu.com/

你可能感兴趣的文章
MFC程序更换XP皮肤
查看>>
SkinSharp使用方法
查看>>
盘点2010年电子书市场
查看>>
How Computers Know What We Want — Before We Do
查看>>
About Recommender Systems
查看>>
jason数据格式
查看>>
金山快盘的安全性太差了
查看>>
KDD Cup2011
查看>>
“相关性”时代的到来
查看>>
OpenCV资料
查看>>
极阅和微精
查看>>
智能Web算法第二版前言和译者序
查看>>
RPC实践(二)JsonRPC实践
查看>>
RPC实践(三)Hessian实践
查看>>
Zookeeper实践(四)zookeeper的WEB客户端zkui使用
查看>>
RPC实践(五)Dubbo实践-服务集群
查看>>
java单元测试Junit实践(一) Junit基础
查看>>
Webservice实践(二)Webservice 客户端开发
查看>>
Webservice实践(三)基于JDK的jax ws进行服务端开发
查看>>
Eclipse中10个最有用的快捷键组合
查看>>