2011-07-02 15:49 by BlueDream, 549 visits, 网摘, 收藏, 编辑
摘要:上次写过一篇QWrap骨骼的文章,个人认为,想要了解一个库或框架,首先从他的核心思想入手,理解其思想,那么剩余的就仅仅是方法的堆砌。近年比较火的一个jsMVC框架backbone他的核心强依赖库为underscore。抽空提取了一下他的骨骼,其实主要就是他的链式操作的实现,别个剩下的就是具体函数的实现了,当然对于Underscore函数式也是它的最大亮点,可以好好看下函数的实现。<!DOCTYPEhtml><html><head><title>Underscore骨骼</title></head><body>&
阅读全文
2011-01-06 00:31 by BlueDream, 533 visits, 网摘, 收藏, 编辑
摘要:记录一下,有时间更新说明。这里只是提取了QW的实现骨架。剔除了selector的query,简单演示了QW的Node包装器以及setterAll/getterOne的实现思路。原理还是比较简单比较好理解。[代码]
阅读全文
2011-01-05 00:15 by BlueDream, 505 visits, 网摘, 收藏, 编辑
摘要:对于javascript函数重载这个概念,参考书籍上多多少少都会提及,也就是从语言角度来说,javascript不支持函数重载,不能够定义同样的函数然后通过编译器去根据不同的参数执行不同的函数。但是javascript却可以通过自身属性去模拟函数重载。书上常见的比较无意义的例子,比如一个计算器函数,如果参数为两个数字,就执行加法运算。如果参数为三个数字,就执行乘法运算这个函数大家最容易想到的实现就是[代码]这个函数看起来没什么不好,但随着需求的增多,if分支就会越来越庞大,而且对应的模式也越来越难看。虽然if对于语言来说没啥不好。但我们可以考虑使用另一个策略来实现这个需求。这就是一个新的函数重
阅读全文
2010-12-05 23:31 by BlueDream, 394 visits, 网摘, 收藏, 编辑
摘要:资源预加载可以提升用户体验,如果每次用户打开页面都要加载图片,js,css等资源,会影响用户体验。资源预加载可以一定程度上改善这种情况。我们可以做的是,但第一个页面load完的时候,在用户阅读网页的空隙,把下一个页面所用的资源提前加载过来cache住,这样下个页面就直接读缓存资源了,这样可以一定程度改善用户体验。 那么预加载资源需要解决的主要问题是JS加载过来不会被直接执行,css加载过来不会更改页面样式。这样就会产生很多方案, 这里介绍一种不错的兼容方案:1. IE下用new Image()来加载2. 其余浏览器使用object元素来加载原因new Image().srcdoesn't d
阅读全文
2010-10-24 14:11 by BlueDream, 442 visits, 网摘, 收藏, 编辑
摘要:jsonP目前被用来作为跨域的首选方案.即用动态创建的script标签去回调后端脚本,然后获取返回值并调用回调函数。但这里面有两个比较遗憾的事情:前端需要和后端提前定义好接口,而且定义接口后,如果前端回调函数要改变名字,那么后端也需要变。(比如串行化,一个接口调用不同的回调函数,那么就更麻烦了)。无法捕获错误信息。 为了处理这两点。从好奇和emu那边看到了一个比较好的解决方案。转载记录一下[代码]【使用方法】[代码]更详细的细节,请参考:http://www.cnblogs.com/muxrwc/archive/2010/08/16/1800784.htmlhttp://www.blogjav
阅读全文
2010-10-23 18:25 by BlueDream, 330 visits, 网摘, 收藏, 编辑
摘要:函数分析functionBlock(func,tag){var_r_function=/^function\b\s*([\$\S]*)\s*\(/;var_r_codebody=/[^{]*\{([\d\D]*)\}$/;var_r_params=/[^\(]*\(([^\)]*)\)[\d\D]*/;tag=(tag||'body').toLowerCase();with(func.toString()){return(tag=='body')?replace(_r_codebody,'$1').replace(/^\s*|\s*$/g,
阅读全文
2010-09-02 16:21 by BlueDream, 419 visits, 网摘, 收藏, 编辑
摘要:function parseHexColor(hexColor) { return { r: parseInt(hexColor.slice(1, 3), 16), g: parseInt(hexColor.slice(3, 5), 16), b: parseInt(hexColor.slice(5, 7), 16) };}function parseHexColor1(hexColor) { v...
阅读全文
2010-09-02 00:04 by BlueDream, 248 visits, 网摘, 收藏, 编辑
摘要:var matchRecursive = function () { var formatParts = /^([\S\s]+?)\.\.\.([\S\s]+)/, metaChar = /[-[\]{}()*+?.\\^$|,]/g, escape = function (str) { return str.replace(metaChar, "\\$&"); }; return fun...
阅读全文
2010-08-23 23:45 by BlueDream, 424 visits, 网摘, 收藏, 编辑
摘要:// Usage:// Target all links with an ID starting with "notice"delegateEvent({nodeName:/^a$/i, id: /^notice/}, 'click', function(){ alert(this.id);});function delegateEvent(props, type, handler) { var ...
阅读全文
2010-08-21 23:00 by BlueDream, 275 visits, 网摘, 收藏, 编辑
摘要:前端发展至今.浏览器探测可谓是五花八门.这里再记录一个运用IE的条件编译来探测IE浏览器的各版本.这个代码的意图就是.通过while循环.将条件编译写入到div即页面中.然后直接取注释下的这个元素.直到取不到就退出循环. 这样就获得了IE的最终版本.如果不是IE那么就是undefined.原文地址:http://james.padolsey.com/javascript/detect-ie-in-...
阅读全文
2010-07-30 16:58 by BlueDream, 1627 visits, 网摘, 收藏, 编辑
摘要:^ _ ^ GameStartDEMO源码<inputtype="button"style="width:120px;height:45px;"id="run"value="演示"/><divid="container"><divid="demo"class="demo">^_^GameStart</div></div><scripttype="text/javascript&qu
阅读全文
2010-07-25 17:19 by BlueDream, 516 visits, 网摘, 收藏, 编辑
摘要:在上一篇(介绍篇)中,我们对Fiddler Web Debugger有了简单的接触,也许你已经开始在用Fiddler进行HTTP相关的调试,在这一篇,我们将通过一个实例了解Fiddler的神奇魔法。在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。通常,我们需要将文件进行修改,然后重新发布再验证,这样就很容易影响到生产环境的稳定性。更普遍...
阅读全文
2010-07-25 17:14 by BlueDream, 379 visits, 网摘, 收藏, 编辑
摘要:1. Fiddler 是什么?Fiddler是用C#编写的一个免费的HTTP/HTTPS网络调试器。英语中Fiddler是小提琴的意思,Fiddler Web Debugger就像小提琴一样,可以让前端开发变得更加优雅。Fiddler是以代理服务器的方式,监听系统的网络数据流动。运行Fiddler后,就会在本地打开8888端口,网络数据流通过Fiddler进行中转时,我们可以监视HTTP/HTTP...
阅读全文
2010-07-11 14:31 by BlueDream, 2528 visits, 网摘, 收藏, 编辑
摘要:由于浏览器兼容的复杂性.打造一个较优的跨浏览器事件处理函数.不是件容易的事情.各大类库也都通过了种种方案去抽象一个庞大的事件机制.使用类库可以比较容易的解决兼容性问题.但这背后的机理又是如何呢? 下面我们就一点点铺开来讲.首先,DOM Level2为事件处理定义了两个函数addEventListener和removeEventListener, 这两个函数都来自于EventTarget接口.[代码]EventTarget接口通常实现自Node或Window接口.也就是所谓的DOM元素.那么比如window也就可以通过addEventListener来添加监听.[代码]移除监听通过removeE
阅读全文
2010-07-09 23:07 by BlueDream, 2715 visits, 网摘, 收藏, 编辑
摘要:【实例演示】【程序源码】【说明】程序效率出现了很大瓶颈.需要做的优化还有很多.有时间继续完善.如果IE下在博客演示慢.可将实例下载到本地.另:感谢罗浮宫群友逍遥君武和豪情对图片的支持。【源码下载】screenBubble
阅读全文
2010-07-06 21:44 by BlueDream, 2838 visits, 网摘, 收藏, 编辑
摘要:【实例演示】你对我人品的评价:20406080100【程序源码】这个效果主要体现在CSS和javascript的配合上CSS代码HTML结构Javascript代码【源码下载】TB-Star
阅读全文
2010-07-04 16:45 by BlueDream, 4006 visits, 网摘, 收藏, 编辑
摘要:点击演示程序源码<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>ImageRotation</title><metahttp-equiv="Content-Type"
阅读全文
2010-07-04 13:29 by BlueDream, 565 visits, 网摘, 收藏, 编辑
摘要:【实例演示】【程序源码】【使用方法】【源码下载】fx
阅读全文
2010-07-03 19:38 by BlueDream, 650 visits, 网摘, 收藏, 编辑
摘要:程序原理富文本编辑器具有的基本功能就是对编辑区选中的文字通过工具栏提供的功能对文字或选区进行操作.比如文字加粗,斜体,创建表格,插入链接和图片等一系列的操作.然后可以通过源码查看查看编辑后产生的源代码.可以先通过Rich-Text_Editing大致了解下实现富文本编辑器的主要技术.这些功能就是我们代码设计的主线.编辑区我们需要一个iframe.并将其designMode属性设置为"on".这个iframe就具备了编辑功能.也是我们实现编辑器的基本容器.动态创建一个iframe代码如下[代码]这里我们创建了一个空白的iframe并将其document文档的designMode设置为"on".然
阅读全文
2010-06-28 16:22 by BlueDream, 534 visits, 网摘, 收藏, 编辑
摘要:【实例演示】【程序源码】【源码下载】Fountain
阅读全文
2010-06-24 14:33 by BlueDream, 399 visits, 网摘, 收藏, 编辑
摘要:【程序示例】【程序源码】【源码下载】drawSine
阅读全文
2010-06-20 19:18 by BlueDream, 527 visits, 网摘, 收藏, 编辑
摘要:这一节将进行KISSY的选择器 selector.js分析.【程序源码】
阅读全文
2010-06-20 18:39 by BlueDream, 514 visits, 网摘, 收藏, 编辑
摘要:今天开始就正式进入了DOM文件夹部分. DOMAPI算是比较难搞的部分.KISSY也在不断完善中.所以现在实现的不是很全面.这篇我们主要看下dom.js和dom-class.jsdom.js只定义了个命名空间.代码还没有具体实现[代码]但由于DOM方法都是扩展在J.DOM命名空间下.所以这个文件是必须的.dom-class.js是对元素的class进行了控制.【程序源码】[代码]1. batch方...
阅读全文
2010-06-19 14:20 by BlueDream, 365 visits, 网摘, 收藏, 编辑
摘要:【程序演示】Tween类型LinearQuadCubicQuartQuintSineExpoCircElasticBackBounceEase类型easeIneaseOuteaseInOut【程序源码】【源码下载】Tween【参考来源】http://www.cnblogs.com/cloudgamer/archive/2009/01/06/Tween.html
阅读全文
2010-06-16 23:19 by BlueDream, 602 visits, 网摘, 收藏, 编辑
摘要:【程序源码】【使用方法】【源码下载】Accordion
阅读全文
2010-06-09 21:44 by BlueDream, 185 visits, 网摘, 收藏, 编辑
摘要:用法再附上原版的两位大神的方案http://james.padolsey.com/javascript/parsing-urls-with-the-dom/http://blog.stevenlevithan.com/archives/parseuri
阅读全文
2010-06-05 12:12 by BlueDream, 460 visits, 网摘, 收藏, 编辑
摘要:作者 周爱民 发布于 2010年6月2日 上午12时5分从语言学的角度上来说,允许代码无节制地使用全局变量,是最错误的选择之一。而更可怕的,就是一个变量"可能"成为全局的(在未知的时间与地点)。但是这两项,却伴随JavaScript这门语言成功地走到了现在。也许是限于浏览器应用的规模,所以这一切还迟迟没有酿成灾难。在此之前,出现了两种解决方案。一种是ECMA在...
阅读全文
2010-06-02 22:58 by BlueDream, 793 visits, 网摘, 收藏, 编辑
摘要:由于工作上需要实现公历转换农历.以及农历转换成公历.还有农历公历二级联动.特封装了这个转换函数. 有个函数的对照表对于农历的联动也很容易实现了.最近要用到节气的计算.所以又扩展了一下关于节气的计算:农历中一种日月兼顾的历法,月份是以月为历,节气是以日为历,地公转轨道是一个以太阳为一个焦点的椭圆,以近日点为0度,以太阳为中心,将地球公转所扫过的角度每十五度的界点所在日期便是一个节气。(可以运用立体几...
阅读全文
2010-06-02 22:49 by BlueDream, 186 visits, 网摘, 收藏, 编辑
摘要:在工作中经常会拼接字串然后通过innerHTML注入到容器中. 为了使HTML和JS代码松耦合.实现一个简易的模板函数可以使代码看上去更明朗些.实例如下:
阅读全文
2010-05-28 22:54 by BlueDream, 778 visits, 网摘, 收藏, 编辑
摘要:关于一个WEB前端的职业规划,其实是有各种的答案,没有哪种答案是完全正确的,全凭自己的选择,只要是自己选定了,坚持去认真走,就好。在这里,我只是简要说一下自己对于这块儿内容的理解。有一个观点想要分享给大家的是:任何规划和目标的实现都依赖于知识的积累,而知识的积累来源于学习及学习后大量的实践。我提供一个实践途径,我们可以在工作之余的时间在网上或外包公司那里接一些私单做,因为目标不是赚钱,我们可以用最...
阅读全文
2010-05-25 14:18 by BlueDream, 190 visits, 网摘, 收藏, 编辑
摘要:一年前读过.当一年后再读.发现以前自己根本没有理解.在此记录下代码.以便翻阅.
阅读全文
2010-05-10 23:05 by BlueDream, 416 visits, 网摘, 收藏, 编辑
摘要:在同域的情况下.无阻塞异步加载js的比较完美的方法就是通过XHR eval动态加载解析外部js文件.但XHR的问题就是.无法保证加载顺序.只是哪个.js文件先加载完毕就先执行哪个.所以我们需要用个队列机制将其管理.提供顺序引入的功能.上面的代码就是一个具有队列性质的管理机制.用法就是:表示引入两个.js文件.顺序为先main.js然后再sub.js并且当sub.js执行完毕后会调用init方法.
阅读全文
2010-05-10 11:59 by BlueDream, 243 visits, 网摘, 收藏, 编辑
摘要:本来页面有这样的需求:一个文本框,当鼠标移上的时候,让其获得焦点,这样可以增强用户的体验,方便用户直接操作文本框.这个需求在程序上很容易实现.我们可以几句代码搞定:看是很简单的程序却恰恰不那么完美.在IE浏览器下.当你在这个页面新打开一个窗口的时候.再移动到这个页面的文本框上,那么这个文本框还会focus.而导致这个页面被激活.那么用户新打开的浏览页面就会被挡在后面.那样用户会很莫名.那么这个问题...
阅读全文
2010-05-01 00:19 by BlueDream, 215 visits, 网摘, 收藏, 编辑
摘要:浏览器中有些敏感事件一旦触发会频繁发生.比如onScroll, onmousemove , onresize等触发频率很快.很耗内存.平时的应用场景比如:tabView是通过mouseover触发的.当用户迅速从页面滑过是不会触发的.必须要停滞一会才触发.还有ajax频繁请求等.都会耗很大的内存资源.那么我们就需要一个事件控制函数.让事件以一定频率的发生.下面演示了两个div第一个是普通的mous...
阅读全文
2010-04-29 23:05 by BlueDream, 168 visits, 网摘, 收藏, 编辑
摘要:给浏览器绑定事件的兼容性很麻烦.因为不同的浏览器提供了不同的事件支持.比如IE系列的支持mouseenter/mouseleave事件.而opera不支持contextmenu以及input相关的onbeforepaste, onbeforecut等.比如我们要绑定鼠标滚轮事件.那么通过浏览器嗅觉的方法.会是以下的伪代码:但如果有一天IE支持了DOMMouseScroll事件的话.那么这段代码就又...
阅读全文
2010-04-29 22:18 by BlueDream, 318 visits, 网摘, 收藏, 编辑
摘要:这里有个需求.就是如果有很大量的html元素用innerHTML加载到页面中尤其在IE6下会很慢.甚至假死.该怎么解决.JAMES PADOLSEY 给了一个很好的解决方法.这里主要思路就是:通过递归temp里的firstChild结点.不断的添加转移到FragMent结点中.直到temp.firstChild为null(即转移完毕**因为添加的是结点引用所以用appendChild添加的时候te...
阅读全文
2010-04-27 15:09 by BlueDream, 161 visits, 网摘, 收藏, 编辑
摘要:像prototype.js的那种直接在元素上原型进行扩展.作者也渐渐的感觉到了吃力.所以避免对原生对象污染还是很有必要的.【简易的扩展函数】
阅读全文
2010-04-14 18:19 by BlueDream, 109 visits, 网摘, 收藏, 编辑
摘要:没有赋值的arguments对象项(c)是不应该具有共享性的.但Chrome却埋了这个地雷.附上文档规范:My confusion stemmed from Section 10.6 Note 1 of ECMA-262, 5th Edition, which reads:For non-strict mode functions the array index (defined in 15.4)...
阅读全文
2010-04-13 18:26 by BlueDream, 226 visits, 网摘, 收藏, 编辑
摘要:今天在国外博客看到了7个额外的build-in对象:ScriptEngine,ScriptEngineBuildVersion,ScriptEngineMajorVersion,ScriptEngineMinorVersion,CollectGarbage,RuntimeObject, andGetObject其中比较感兴趣的两个是ScriptEngineMinorVersion获取IE版本号和另...
阅读全文
2010-04-13 10:40 by BlueDream, 172 visits, 网摘, 收藏, 编辑
摘要:JS继承分为:类式继承和原型式继承.类式继承源于大多程序员熟知的传统形式.所以比较容易接受. 原型式继承是源于JS独特的原型机制.因此效率更高.至于哪一种还是看个人习惯了.这里只是构造了个简单的类式继承的原型.上面的例子就是Author继承了Person类
阅读全文
2010-04-07 17:33 by BlueDream, 155 visits, 网摘, 收藏, 编辑
摘要:事件机制 -- 典型观察者模式. 程序设计的正确标准是松耦合,高内聚. 而观察者模式恰恰给松耦合提供了便利条件. CustomEvent又是对事件的高度封装.是用户能够自定义自己的事件. 从而达到更好的松耦合.简单的自定义事件:上面代码主要分为三部分1.addListener(添加事件句柄)首先初始化的时候维护一个_listeners的Hash列表. 当追加自定义事件的时候.如果该事件没有追加过即...
阅读全文
2010-03-16 11:55 by BlueDream, 383 visits, 网摘, 收藏, 编辑
摘要:分时加载的目的: 在用户体验的极限值去分批加载大型数据.保证浏览器整个数据加载的流畅.避免假死现象.几点说明:timedChunk 函数,里面的 50ms 来自 Response Time Overview 中的调查结果:100ms 内的响应能让用户感觉非常流畅。50ms 是 Nicholas 针对 JavaScript 得出的最佳经验值。setTimeout 延时 25ms, 是因为浏览器的时间分辨率问题。25ms 可以保证主流浏览器都顺畅(有喘息的机会去更新 UI)。上面的实例,传统方式加载会让浏览器在加载数据期间,无法更新界面和响应任何操作。采用分时加载,则可以让浏览器始终保持可响应状态
阅读全文
2010-03-12 22:30 by BlueDream, 115 visits, 网摘, 收藏, 编辑
摘要:首先看测试代码:大致测试结果比率如下:首先可见大部分浏览器都对普通字符串操作做了优化,都优于数组push操作.但用原生的join占有绝对优势.
阅读全文
2010-03-12 22:23 by BlueDream, 335 visits, 网摘, 收藏, 编辑
摘要:用hash代替数组.下面代码可直接拷贝测试:可见用hash比用array筛选快的不是一个数量级
阅读全文
2010-02-23 18:21 by BlueDream, 1180 visits, 网摘, 收藏, 编辑
摘要:javascript超空间(DOM hyperspace)在ppk谈javascript中出现. 大概是指.当元素不在dom里面,而js又有关联的时候.元素不会消失,而是保存在一个被称为"超空间"的地方.书中说了可以用是否存在parentNode来判断元素是否在超空间中.第一次parentNode是null没有问题.正常说由于已经被节点删除了,parentNode应该也为null.但在IE下却是o...
阅读全文
2010-02-21 16:48 by BlueDream, 94 visits, 网摘, 收藏, 编辑
摘要:又一JavaScript谜题.记录下.以及相关解答.
阅读全文
2010-02-05 00:36 by BlueDream, 252 visits, 网摘, 收藏, 编辑
摘要:刚巧睡觉前看到了sohighthesky同学的文章.正好最近也要用到滚轮事件.就顺便也看下记录下.主要是滚轮鼠标的兼容性:1. 绑定滚轮事件. 这次只有FF浏览器特殊用DOMMouseScroll 其余浏览器使用onmousewheel. 代码可以写为:2. 控制滚轮数值大小和方向. 仅有FF使用 detail 其它的都用wheelDelta. detail每次滚动的值为加减3 而wheelDel...
阅读全文
2010-01-30 17:46 by BlueDream, 129 visits, 网摘, 收藏, 编辑
摘要:贪吃蛇的几个步骤:1. 生成网盘表格 运用循环生成表格. 然后将表格的行列赋值到一个多维数组map[[][]]中. 便于操作2. 生成蛇身以及位置通过x y值决定蛇头的朝向. 比如蛇头朝右. 那么就map的y不变 在x轴增加蛇身即可body[]3. 判断是否为蛇身 循环body蛇身 判断存不存在该元素 如果是蛇身 就返回null 然后弹出提示4. 随机生成食物 在map的格子里随机生成...
阅读全文
2010-01-27 22:20 by BlueDream, 1038 visits, 网摘, 收藏, 编辑
摘要:昨天在NCZOnline博客谈到了几道谜题.觉得挺有意思.记录一下.大家无聊的时候可以测试玩玩.这几道谜题.最起码可以从中学到一些东西.不算是一些技巧的卖弄. 下面一一分析,共有5道 大家可以试着一道道做 然后看下结果.测试一[代码]测试二[代码]测试三[代码]测试四[代码]测试五[代码]-------------------------------------------------------...
阅读全文
2010-01-26 10:59 by BlueDream, 544 visits, 网摘, 收藏, 编辑
摘要:非IE浏览器里运行实例.主要说明了jQuery的初级搭建.以及实例的构造和获取的所有对象push到数组的过程.另一篇参考:http://bbs.blueidea.com/thread-2902038-1-1.html
阅读全文
2010-01-24 20:20 by BlueDream, 180 visits, 网摘, 收藏, 编辑
摘要:在写表格排序的时候.大家经常会遇到.如果表格里有单选按钮或多选框.当你选中后. 如果表格排序后DOM重新添加.checked便会失效.这是IE6和IE7下的BUG. IE8已经修复. 可在IE6 7下测试.现象: 选中其它单选按钮 点击change后 会提示选中的还是默认的第一个.解决方法: 在改变DOM结构前,将每个单选按钮的defaultChecked属性赋值.如果将 changeDom里的那...
阅读全文
2010-01-22 17:46 by BlueDream, 518 visits, 网摘, 收藏, 编辑
摘要:先上个图.这样就很容易理解了圆的参数方程 x=a+r cosθ y=b+r sinθ (a,b)为圆心坐标 r为圆半径 θ为参数
阅读全文
2009-12-20 20:52 by BlueDream, 112 visits, 网摘, 收藏, 编辑
摘要:在javascript中有个arguments这个奇异的类数组对象.它的作用就是保存当前函数调用的参数.之所以说它是类数组.是因为它保存参数的形式类似数组.但实际上并不是一个数组使用typeof arguments 返回的是"object". 它不能像Array一样使用push和pop等方法.但却可以使用下标以及长度属性(length)获取它的值.首先让我们认识一下arguments的产生虽然这样...
阅读全文
2009-12-01 23:42 by BlueDream, 317 visits, 网摘, 收藏, 编辑
摘要:从Range中插入一些数据前一节的几个方法解决了如何移除range中所选中的fragment。现在说明如何添加内容到Range中。insertNode()方法可以插入一个节点到Range中。假如我想把以下的节点插如Range中,将如何操作呢?<span style="color: red">Inserted text</span>看下面的代码:那么原来的HTML将会变成这样...
阅读全文
2009-12-01 23:35 by BlueDream, 225 visits, 网摘, 收藏, 编辑
摘要:复杂的DOM Range建立复杂的DOM range需要使用setStart()和setEnd()两个方法,这两个方法有两个参数:一个是一个节点(node)引用和一个偏移(offset)。setStart方法节点的引用是startContainer,偏移则是startOffset;setEnd()方法时,节点引用为endContainer,偏移就是endOffset。使用这两个方法与selectN...
阅读全文
2009-12-01 23:28 by BlueDream, 201 visits, 网摘, 收藏, 编辑
摘要:哈哈,一早就看到了bluedestiny的这篇好文章.最近顺便学了下.很难找到的DOM2 Range的好教材..2级DOM定义了一个createRange()方法,如果是按照DOM此标准的浏览器(IE并不是支持此标准的,但是IE里的属性或方法却远比标准中定义的多得多),它属于document对象,所以创建一个range对象要这样做:var oRange = document.createRange...
阅读全文
2009-11-03 00:30 by BlueDream, 104 visits, 网摘, 收藏, 编辑
摘要:函数可以通过对象来存储先前操作的结果,从而减少无谓的运算,这种优化被称为记忆.比如说:用JS来递归实现斐波那契数列.Fibonacci一个运算数是前两个运算数的和.最前面的两个数字是0和1.最容易想到的递归方式就是:[代码]这里可以看到 比如计算10的斐波那契数.要把9以前每次斐波那契都重新算一遍.显然损失了很多效率.这里我们就可以用一个数组把每次计算的值给"记忆"起来.以便下次调用可以直接取出....
阅读全文
2009-09-17 13:07 by BlueDream, 226 visits, 网摘, 收藏, 编辑
摘要:程序源码[代码]使用方法[代码]通过改变参数我们可以很容易的生产出一种新形势的slideMenu.由于篇幅原因就不演示了.可以直接下载源码获取.[代码]源码下载slideMenu
阅读全文
2009-09-11 00:31 by BlueDream, 64 visits, 网摘, 收藏, 编辑
摘要:今天在CSDN遇到个帖子,需要得到选中元素的所属DOM结点层次.代码主要涉及的DOM2的几个点.看下代码就知道了:
阅读全文
2009-09-08 23:39 by BlueDream, 667 visits, 网摘, 收藏, 编辑
摘要:昨天闲逛51js发现这个有趣的帖子.后来发现lifesinger,月影.Amingoo都讨论了一番.所以自己也总结下.自己当时给出的解决方法是: [代码]运用了Array(n+1).join()倍增的效率优越性.但不管从效率还是稳定性.最后肯定了所谓的"质朴长存法".其实这也说明了,解决问题不要忽略最基本的方法: [代码]最后针对上文的第一个方法.周爱民给出了一个效率上细节的一个提升: [代码]这...
阅读全文
2009-08-30 23:51 by BlueDream, 113 visits, 网摘, 收藏, 编辑
摘要:首先Wiki里对Curring(科里化)的定义:Curryingis the technique of transforming afunctionthat takes multipleargumentsin such a way that it can be called as a chain of functions each with a single argument.意思是:将多拥有多个...
阅读全文
2009-08-08 00:45 by BlueDream, 325 visits, 网摘, 收藏, 编辑
摘要:match和exec进行匹配.返回的都是匹配数组但却有着区别.让我们分析下.1.matchmatch方法属于String正则表达方法. 语法: str.match(regexp)str:要进行匹配的字符串. regexp:一个正则表达式(或者由RegExp()构造成的正则表达式)match的用法主要区分就是,正则表达式是否有全局标示g.1)如果有g全局标志,那么返回的数组保存的是,所有匹配的内容....
阅读全文
2009-08-07 14:11 by BlueDream, 303 visits, 网摘, 收藏, 编辑
摘要:【javascript动画篇】http://www.jsanim.com/http://www.berniecode.com/writing/animator.htmlhttp://www.schillmania.com/projects/snowstorm/#customizinghttp://svn.coderepos.org/share/lang/javascript/jstweener/trunk/examples/transitions.html【javascript理论篇】http://bbs.51js.com/viewthread.php?tid=85310&highli
阅读全文
2009-07-30 01:20 by BlueDream, 180 visits, 网摘, 收藏, 编辑
摘要:在Core JavaScript1.6中Firefox 和 SpiderMonkey又扩展了新的Array方法.由于IE等浏览器不支持这里就直接给出扩展方法让其兼容所有浏览器.1.forEach (便利所有数组,并将数组以及元素,索引传入回调函数做处理) [代码]说明:第一个参数array: 调用该方法的数组.第二个参数callback: 处理数组的方法默认传入3个参数.依次是array[i],i...
阅读全文
2009-07-25 01:04 by BlueDream, 131 visits, 网摘, 收藏, 编辑
摘要:在ECMAScript中值分为原始类型和引用类型.原始类型有五种分别为:Undefined, Null, Number, Boolean, String.引用类型包括:Object, Function, Array, Date, RegExp等.对于数据类型的坚持有几种方法,让我们由浅入深的分析下.1. typeof是最弱的的一种检测方法typeof运算符只返回number, string, bo...
阅读全文
2009-06-10 22:07 by BlueDream, 186 visits, 网摘, 收藏, 编辑
摘要:一.什么是Cookie Cookie是浏览器提供给客户端的用来存储少量数据的一种机制.通过Cookie无论是客户端脚本还是服务器端脚本,都可以很方便的在一个页面引用另一个页面的数据.Cookie是浏览器提供给javascript的少数持久化对象之一.所谓持久化对象,是指他的生命周期长于浏览器Window对象的生命周期.二.客户端Cookie Document对象的cookie属性可以操作浏览器...
阅读全文
2009-04-14 09:23 by BlueDream, 207 visits, 网摘, 收藏, 编辑
摘要:实现原理首先为图片设置个初始的Top值,然后当图片滚动式,用setInterval不断监控style.top与初始的top值是否相等,如果不想等就减去差值,让style.top一直保持初始值减速原理[代码]用(目标值 - 当前值) / 整数值 一直循环 由于当前值不断增大 目标值 - 当前值(既分子)不断减小 所以Amount无限趋近于0代码如下:[代码]源码下载Banner
阅读全文
2009-04-12 12:26 by BlueDream, 180 visits, 网摘, 收藏, 编辑
摘要:new document 您选择的日期为:程序源码[代码]
阅读全文