源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-07-25 18:45 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:百度空间的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);  };  }  } );
当前1/3页 [b]1[/b][url=http://www.1sucai.cn/article/16132_2.htm]2[/url][url=http://www.1sucai.cn/article/16132_3.htm]3[/url][url=http://www.1sucai.cn/article/16132_2.htm]下一页[/url][url=http://www.1sucai.cn/article/16132_all.htm]阅读全文[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部