一个关于用户体验的思考

现在的软件认真一点都要注重所谓用户体验(user experience),比如在 B/S 开发这块大家越来越喜欢用 Ajax,就是为了提高界面对用户的友好程度。我们知道 Ajax 开发中经常会使用联动下拉列表,或类似的“连锁反应”。前不久,在我开发的一个页面中使用了联动列表的技术,在向客户演示时,出现了一个尴尬的局面:

客户在选中了第一级下拉的选项后,程序无刷新读取数据,调出了相关的数据,是一个稍微长一点的表单;
随即客户想看看页面下方查出来的东西,于是向下滚动鼠标滚轮,可是这时焦点还在第一个下拉列表上。可以想见下面发生了什么:连续发生了 n 次选择不同选项的无刷新调用。

这种行为显然不是我所想看到的。虽然可以教客户每次选择后,要在页面空白处点击一下让下拉框失去焦点,但这显然不是个友好的设计。

很自然的,我想到一个办法:禁止可能产生联动效应的那些下拉框的鼠标滚轮事件,并将焦点转移到 body 上,让滚轮变成正常的滚动页面。代码非常简单:

<select onmousewheel="window.event.returnValue = false; document.body.focus();">
    
<option>1</option>
    
<option>2</option>
    
<option>3</option>
    
<option>4</option>
    
<option>5</option>
</select>

这个代码本身可以说是不值一提。现在采用 Ajax 开发越来越多,我觉得如果能总结出这方面一些小技巧,加强 Ajax 程序的用户体验,应该是有价值的。
对这方面有兴趣的朋友,请不吝指教。大家一起总结一些技巧出来。

posted on 2006-07-25 22:40  NeilChen  阅读(960)  评论(7编辑  收藏  举报

导航