作家
登录

百度空间的popup效果分析第1/3页

作者: 来源:www.28hudong.com 2013-03-30 02:54:44 阅读 我要评论

百度空间的弹出窗口和拖拽效果,看起来挺不错的。现在很多知名网站都是用的这样的技术。下面把我down的js代码发出来,我分析了一部分,但是还有很多东西不明白怎么回事,没有写注释的部分,还请高手能帮我解释一下。本人属于初学,有不对的地方还请多多指教。 在声明一条吧,此代码仅做学习用,技术版权属于百度。 主要是一个叫做:popup.js的文件,如下: /**//*********************************************** popup.js**************************************************/ //为数组Array添加一个push方法 //为数组的末尾加入一个对象 if(!Array.prototype.push) { Array.prototype.push=function () { var startLength=this.length; for(var i=0;i<arguments.length;i++) { this[startLength+i]=arguments[i]; } return this.length; } }; //对G函数的参数进行处理 function G() { //定义一个数组用来保存参数 var elements=new Array(); //循环分析G中参数的内容 for(var i=0;i<arguments.length;i++) { var element=arguments[i]; //如果参数的类型为string,则获得以这个参数为ID的对象 if(typeof element=='string') { element=document.getElementById(element); } //如果参数的长度为1 if(arguments.length==1) { return element; } //将对象加入到数组的末尾 elements.push(element); }; return elements; }; Function.prototype.bind=function (object) { var __method=this; return function () { __method.apply(object,arguments); }; }; //绑定事件 Function.prototype.bindAsEventListener=function (object) { var __method=this; return function (event){__method.call(object,event||window.event);}; }; Object.extend=function (destination,source) { for(property in source) { destination[property]=source[property]; }; return destination; }; if(!window.Event) { var Event=new Object(); }; Object.extend( Event, { observers:false, element:function (event) { return event.target||event.srcElement; }, isLeftClick:function (event) { return (((event.which)&&(event.which==1))||((event.button)&&(event.button==1))); }, pointerX:function (event) { return event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)); }, pointerY:function (event) { return event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop)); }, stop:function (event) { if(event.preventDefault) { event.preventDefault(); event.stopPropagation(); } else { event.returnValue=false; event.cancelBubble=true; }; }, findElement:function (event,tagName) { var element=Event.element(event); while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))) element=element.parentNode; return element; }, _observeAndCache:function (element,name,observer,useCapture) { if(!this.observers) this.observers=[]; if(element.addEventListener) { this.observers.push([element,name,observer,useCapture]); element.addEventListener(name,observer,useCapture); } else if(element.attachEvent) { this.observers.push([element,name,observer,useCapture]); element.attachEvent('on'+name,observer); }; }, unloadCache:function () { if(!Event.observers) return; for(var i=0;i<Event.observers.length;i++) { Event.stopObserving.apply(this,Event.observers[i]); Event.observers[i][0]=null; }; Event.observers=false; }, observe:function (element,name,observer,useCapture) { var element=G(element); useCapture=useCapture||false; if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent)) name='keydown'; this._observeAndCache(element,name,observer,useCapture); }, stopObserving:function (element,name,observer,useCapture) { var element=G(element); useCapture=useCapture||false; if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent)) name='keydown'; if(element.removeEventListener) { element.removeEventListener(name,observer,useCapture); } else if(element.detachEvent) { element.detachEvent('on'+name,observer); }; } } );

  推荐阅读

  初学JavaScript第一章第1/2页

JavaScript的数据类型 Number:整形,浮点型 String:字符型数据,JavaScript不区分单个字符和字符串, 任何字符或字符串都可以用又引号或单引号引起来. Boolean:布尔型 Undefined:未定义类型,用于不存在或者没有被赋初>>>详细阅读


本文标题:百度空间的popup效果分析第1/3页

地址:http://www.17bianji.com/kaifa2/JS/29349.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)