色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

百度空間的popup效果分析第1/3頁

百度空間的彈出窗口和拖拽效果,看起來挺不錯的。現在很多知名網站都是用的這樣的技術。下面把我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技術百度空間的popup效果分析第1/3頁,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 化隆| 建阳市| 浮梁县| 芜湖县| 香格里拉县| 武山县| 宜宾市| 永仁县| 永川市| 千阳县| 邻水| 新源县| 桐乡市| 黄陵县| 曲阳县| 苍梧县| 瑞安市| 花垣县| 镇原县| 文化| 玛沁县| 西乌珠穆沁旗| 乡城县| 曲阜市| 井冈山市| 建阳市| 石嘴山市| 靖远县| 威海市| 平乡县| 普宁市| 灯塔市| 前郭尔| 嘉荫县| 邵东县| 镇远县| 洛扎县| 乡城县| 黄陵县| 祁阳县| 怀集县|