摘要: 做好细节,做好用户的视觉体验! 这篇文章说实际问题的,所以不多强调,下面是我总结的一些比较突出的细节问题,而且我一直认为这些问题比较严重,正因为这些都是基本问题,很容易解决的,但把这种忽略养成一种习惯性的“经验”那就“杯具”了,然而这些细节问题也不同程度的代表了你的工作态度。 1)调整后的毛边 当对一个位图的大小进行调整后,正常情况下会留下1px的毛边(如果你注意的话),边界会变得模糊,如果继续调... 阅读全文
posted @ 2011-05-29 15:00 FrankFang 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 摘自http://www.w3school.com.cn Call()方法 call() 方法是与经典的对象冒充方法最相似的方法。它的第一个参数用作 this 的对象。其他参数都直接传递给函数自身。例如: 1: function sayColor(sPrefix,sSuffix) { 2: alert(sPrefix + this.color + sSuffix); 3: }; 4: 5: va... 阅读全文
posted @ 2011-05-28 03:07 FrankFang 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 百度的前端面试题,代码如下: var a=5;function test(){ a=0; alert(a); alert(this.a); var a; alert(a);}test();new test();在Chrome上run了一下,结果是 0 5 0 0 undefined 0前三个结果好说,但对于第五个结果undefined我很疑惑,关键的就是这一句:alert(this.a);我的理解... 阅读全文
posted @ 2011-05-07 23:59 FrankFang 阅读(3781) 评论(27) 推荐(1) 编辑
摘要: CSDN里用人问:我一直以为定义=声明+初始化,即int i;是声明,int i =0;是定义。 但看侯捷翻译的Effective C++上面说string ps;也是个定义(在条款定义应该尽量靠后的那节),如果定义过早,就会过早引入构造的负担。 难道我对声明和定义的概念一直有错吗 声明不导致内存分配,那么到底如何区分定义和声明?我在楼下回帖里挑选了几个比较靠谱的答案进行了一下总结,以防以后自己也忘了。"声明"的严谨C++语意,是用以告诉编译器类型及其细节,例如:class MyClass{ //数据成员细节... //成员函数细节...};上述声明仅告诉编译器有自定义类型 阅读全文
posted @ 2011-05-02 15:30 FrankFang 阅读(9544) 评论(4) 推荐(1) 编辑
摘要: 因为在实习过程中发现自己的JS知识和熟练度亟待提升,于是想到用JS做一个数独游戏。Demo猛击这里思路:创建HTML结构创建Sudoku对象创建一个题目,方法是先生成一个全部填满的9X9矩阵,然后随机挖去一些数添加点击响应和按键相应游戏时查看源代码可以看到其实答案就隐藏在里面,游戏在判断玩家是否正确时也是与隐藏的答案进行对比,所以说这个游戏的实现思路还是可以更好的。之后我会在用户体验方面进行改进。 阅读全文
posted @ 2011-04-30 20:29 FrankFang 阅读(1217) 评论(1) 推荐(0) 编辑
摘要: 在找实习的过程中,算是有缘吧,交互设计走进了我的视野,不过课堂上学习的这方面只是太少了,于是到图书馆恶补了一下。下面是The Elements of User Experience一书中的主要理论,做为菜鸟的我也不知道这个理论的正确性和可操作性如何,但看起来还是很有条理的。本书将UE(User Experience,即用户体验)分为五个层面和两个角度,图示如下:注:图中的用词可能和我们经常使用的概念不一致。以下一一来做简略的阐述。五个层面:战略层、范围层、结构层、框架层和表现层。这五层从抽奖逐渐到具体。两个角度:网页作为软件界面(左半部分)和网页作为超文本系统(右半部分)。原则一:较高的层依赖 阅读全文
posted @ 2011-04-21 15:04 FrankFang 阅读(15946) 评论(11) 推荐(11) 编辑
摘要: 1 ECMAScript中所有变量都采用晚绑定的方法,不支持早绑定。晚绑定是指我们的代码在运行时再检查对象是否提供了我们所需要的方法和属性。2 Array对象就像一个栈,提供了push和pop方法。Array对象又像一个队列,提供了shift和push方法。3 对象有为三种:本地对象、内置对象和宿主对象。内置对象只有两个:Global和Math,都属于本地对象。4 ECMAScript只存在公用作用域5 定义类或对象一般使用“构造函数+原型”方式:用构造函数定义所有非方法的成员,用原型定义方法成员。实现继承一般使用“对象冒充(object masquerading)+原型链”方式:用对象冒充继 阅读全文
posted @ 2011-04-05 20:08 FrankFang 阅读(1534) 评论(0) 推荐(0) 编辑
摘要: 1 原始值(Primitive Value)是存储在栈(Stack)中的简单数据段;引用值(Reference Value)是存储在堆(Heap)中的对象,即存储在变量中的值是一个指针。2 ECMAScript的5种原始类型:undefined、null、boolean、number和string;对它们使用typeof运算时,分别返回:”undefined”、”object”、”boolean”、”number”和”string”。3 关于typeof:var t;alert(typeof t);alert(typeof t2);两次输出都是”undefined”。(但其他运算符只能作用于已 阅读全文
posted @ 2011-04-03 23:53 FrankFang 阅读(1533) 评论(2) 推荐(1) 编辑
摘要: 任何可以避免嵌套循环的思想都是好的。主要对象的属性能很好地存储对几个方法都很重要的信息——例如,站点导航中被激活的元素。如果你发现自己有很多代码重复了,那么可以建立一个新的方法来完成这个任务——如果将来需要修改这些代码,你只需要在一个地方修改就可以了。不要过多使用节点树来访问。如果许多元素需要知道其它的元素,一旦查出了它就把它存到一个属性中。这样可以使代码更简短。一个很长的if和else语句列表作为一个switch/case块处理可能会更好一些。如果一些代码将来很可能要修改,那么最好把它们放到自己的方法中。下次你看到这些代码并发现这些表面上看起来没什么用处的方法,你会记得它们是要干什么的。不要 阅读全文
posted @ 2011-03-18 15:33 FrankFang 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 这个辅助函数库是《Beginning JavaScript with DOM Scripting and Ajax》一书中的示例,不过却是出自作者Christian Heilmann这位大师之手,我想很值得我们这些新手学习。>下载点击这里< 下面的node指的是文档节点,一般通过document.getElementsByTagName之类的方法获得;txt指字符串; 函数 参数说明 init() 初始化本函数库 lastSibling(node) 获取节点的最后一个兄弟(类型不为文本节点) firstSibling(node) 获取节点的第一个兄弟 getText(node) 阅读全文
posted @ 2011-03-17 00:59 FrankFang 阅读(1907) 评论(1) 推荐(0) 编辑