entry GUI界面设计原则与禁忌

本文列举Jeff Johnson:《GUI设计禁忌》一书中提及的明确针对Web设计和笔者认为对Web设计有参考意义的设计原则和禁忌。设计Web项目时尽量参考一下基本原则,避免设计禁忌,应该能使Web项目的GUI上一个层次。

基本原则

  1. 关注用户及其任务,而不是技术
  2. 首先考虑功能,然后才是表示
  3. 从用户的视角看问题,使用用户的词汇进行描述
  4. 不要向用户暴露实现细节
  5. 使常用的用户任务简单化,不要让用户解决额外的问题
  6. 保持一致性,引导用户的使用习惯
  7. 保持显示惯性,传递信息,而不仅仅是数据
  8. 设计应满足响应需求

禁忌

  1. 同一页面包含重复功能的链接或按钮
  2. 将复选框用作单选按钮
  3. 无初始值的多选一设置
  4. 在非开/关设置中使用复选框
  5. 用文本框显示只读数据
  6. 单选按钮之间间隔太大
  7. 属性标记对齐方式不一致
  8. 当前无效的控件不充分置灰
  9. 显示对用户无意义的错误提示
  10. 不同的类型页面窗口显示相同的标题
  11. 窗口的标题和调用的命令不一致
  12. 要求用户输入随机数
  13. 相似的功能却有不一致的用户操作界面
  14. 取消按钮无法真正取消操作
  15. 网站结构反映公司的结构或网站升级的历史
  16. 返回按钮不能达到预期的目的
  17. 搜索选项过多,过度复杂
  18. 使用容易被忽略的隐藏的图片链接
  19. 需要向下滚动才能看到当前页的重要信息
  20. 图片按钮对鼠标按下操作没有视觉变化
  21. 无意义的虚假进度条
  22. 执行长时间的任务时鼠标指针不显示成忙状态
  23. 不考虑用户可能的人为的错误输入
  24. 认为好的UI就是漂亮的UI
  25. 盲目错误的使用页面模块化设计

来自:隐居者的豆腐店

entry 很漂亮的小图标

silk_preview_small.gifmini_preview_small.gifflags_preview_small.gif

来自 FAMFAMFAM ,做网页的时候正好可以用上,重要的是它们都是免费的。

silk :下载 MINI :下载 FLAG :下载

entry 兼容 FF&IE 的替换鼠标选择文字方法

不多说,最近在做网页的时候用到了,顺便记录一下。这里可以看效果

<script type="text/javascript">

function changes(obj){

var TextIn=document.getElementById("textin");

if(TextIn.createTextRange){
//ie兼容
TextIn.focus();
document.selection.createRange().duplicate().text=obj;
}else{
//firefox兼容
var iStart = TextIn.selectionStart;
var iEnd = TextIn.selectionEnd;
TextIn.value=TextIn.value.substring(0,iStart)+obj+TextIn.value.substring(iEnd,TextIn.value.length);
endRange=iStart+obj.length;
TextIn.setSelectionRange(endRange,endRange);
}
}

</script>
<textarea cols="40" id="textin">选中这里的文字,然后点change试试看。</textarea><input type="button" onclick="changes('文字被替换了!')" value="change" />

entry prototype.js的Ajax对象

我想prototype.js里的ajax对象肯定吸引了不少人,大量封装好的ajax逻辑的类,对于我们这些初学者使用ajax有很大的帮助。

以下用一个我的具体使用例子来解释:效果看这里

1. Ajax.Request

你可以这样创建它

var url = 'http://yoursever/your/your';
var pars = 'id=xxx';
var myAjax = new Ajax.Request(
url,
{method: 'get', parameters: pars, onComplete: yourfunction}
);

parameters表示你要传递的参数,比如id=xxx这些。XMLHttpRequest在HTTP请求期间的阶段分为:Loading, Loaded, Interactive, Complete。Ajax.Request对象在任何一个阶段都可以调用你自定义的方法,形式如onxxxxxxx:yourfunction,比如我们上面提到的onComplete,是最常用的。

例子中实际使用的代码

function sends(id)
{
c = $('content');
o = $('old-content');
c.innerHTML = "
载入中...
";
o.innerHTML = c.innerHTML;
c.style.display = 'none';
o.style.display = 'block';
var myAjax = new Ajax.Request('content_'+ id + '.html', {method: 'get', onComplete:updates});
}
function updates(response)
{
new Effect.Fade($('old-content'));
new Effect.Appear($('content'));
$('content').innerHTML = response.responseText;
}
← Previous  1 … 19 20 21 22 23 24 25 Next →