摘要:
IE 从 5.5 开始就已经支持 display:inline-block 了,只是支持的并不是那么完善。在 msdn 微软开发者社区,找到了 IE 从5.5 开始支持 inline-block 的证据:Theinline-blockvalue is supported starting with Internet Explorer 5.5. You can use this value to give an object a layout without specifying the object’s height or width.这里明确指出:从 IE5.5 开始支持 inline-bl 阅读全文
摘要:
/* -- 封装 -- */var _packaging = function() { //私有属性和方法 var age = "12"; var method1 = function() { //... } //特权属性和方法(1.可以被实例访问 2.不能被类访问 3.可以访问私有属性) this.title = 'JavaScript Design Patterns'; this.getAge = function() { console.log(age); return age; }} //共有静态属性和方法(1.可以被类访问 2.不能被实例访问)_p 阅读全文
摘要:
1.区别IE和非IE浏览器CSS HACK代码#divcss5{ background:blue; /*非IE 背景藍色*/ background:red \9; /*IE6、IE7、IE8背景紅色*/ } 2.区别IE6,IE7,IE8,FF CSS HACK【区别符号】:「\9」、「*」、「_」【示例】:#divcss5{ background:blue; /*Firefox 背景变蓝色*/ background:red \9; /*IE8 背景变红色*/ *... 阅读全文
摘要:
Events = function() { var listen, log, obj, one, remove, trigger, __this; obj = {}; __this = this; listen = function(key, eventfn) { //把简历扔盒子, key就是联系方式. var stack; //stack是盒子 stack = obj[key] != null ? obj[key] : obj[key] = []; return stack.push(eventfn); }; one = function(key, eventf... 阅读全文
摘要:
var arr = [3,4,5,6,7,"a"];var isNum = function(elem,index,AAA){ return !isNaN(elem);}var toUpperCase = function(elem){ return String.prototype.toUpperCase.apply(elem);}var print = function(elem,index){ console.log(index+"."+elem);}/*对数组中的每一项执行测试函数,直到获得对指定的函数返回 false 的项。 使用此方法 可确定 阅读全文
摘要:
《parctical common lisp》的作者曾说,如果你需要一种模式,那一定是哪里出了问题。他所说的问题是指因为语言的天生缺陷,不得不去寻求和总结一种通用的解决方案。不管是弱类型或强类型,静态或动态语言,命令式或说明式语言、每种语言都有天生的优缺点。一个牙买加运动员, 在短跑甚至拳击方面有一些优势,在练瑜伽上就欠缺一些。术士和暗影牧师很容易成为一个出色的辅助,而一个背着梅肯满地图飞的敌法就会略显尴尬。 换到程序中, 静态语言里可能需要花很多功夫来实现装饰者,而js由于能随时往对象上面扔方法,以至于装饰者模式在js里成了鸡肋。讲javascript设计模式的书还比较少. Pro java 阅读全文
摘要:
/*一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。*/ var n=999; function f1(){ alert(n); } f1(); // 999//另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999; } alert(n); // error//这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量! ... 阅读全文
摘要:
//反科里化Function.prototype.uncurrying = function() { var _this = this; return function() { return Function.prototype.call.apply(_this, arguments); //_this.call(arguments); //在下面的例子中Array.prototype.push == _this //因为call 本身也是个函数 //Function.prototype.call.apply 就是去调用call()方法 //也就是Array.prototype.... 阅读全文
摘要:
/*Apply 方法的妙用*//*1.数组最大值*/console.log(Math.max(19, 2, 25, 16, 78));//78/*如果参数是一个一维数组*/var arr = [19, 2, 25, 16, 78];console.log(Math.max(arr));//NaNconsole.log(Math.max.apply(null, arr));//78/*多维数组可以这么修改:*/var a = [1, 2, 3, [5, 6], [1, 4, 8]];/*转化为一维数组*/var ta = a.join(",").split(",&q 阅读全文
摘要:
大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face),包括IE6都支持,只是各自对字体文件格式的支持不太一样。那么对于网站中用到的各种icon,我们就可以尝试使用font来实现,本文将详细讲解这种用法。为什么要将icon做成字体?在很多网站项目中,我们常常会用到各种透明小图标,然后网站要兼容各个浏览器,也可能会有多个尺寸,甚至还要考虑换肤等需求。那么我们就要将这些小图标输出为多种尺寸、颜色和文件格式,比如png8 alpha透明或者png8 index透明等。比如,twitter用到的各种小icon:这种情况下,使用字体来实现图标就有很多优势:字体文件小,一般20-50k 阅读全文