📄 prototype.js
字号:
}else {
elementStyle[(property=="float"||property=="cssFloat")?(elementStyle.styleFloat===undefined?"cssFloat":"styleFloat"):property]=styles[property];
}
}
return element;
},setOpacity:function(element,value){
element=$(element);
element.style.opacity=(value==1||value==="")?"":(value<0.00001)?0:value;
return element;
},getDimensions:function(element){
element=$(element);
var display=$(element).getStyle("display");
if(display!="none"&&display!=null){
return {width:element.offsetWidth,height:element.offsetHeight};
}
var els=element.style;
var originalVisibility=els.visibility;
var originalPosition=els.position;
var originalDisplay=els.display;
els.visibility="hidden";
els.position="absolute";
els.display="block";
var originalWidth=element.clientWidth;
var originalHeight=element.clientHeight;
els.display=originalDisplay;
els.position=originalPosition;
els.visibility=originalVisibility;
return {width:originalWidth,height:originalHeight};
},makePositioned:function(element){
element=$(element);
var pos=Element.getStyle(element,"position");
if(pos=="static"||!pos){
element._madePositioned=true;
element.style.position="relative";
if(window.opera){
element.style.top=0;
element.style.left=0;
}
}
return element;
},undoPositioned:function(element){
element=$(element);
if(element._madePositioned){
element._madePositioned=undefined;
element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right="";
}
return element;
},makeClipping:function(element){
element=$(element);
if(element._overflow){
return element;
}
element._overflow=Element.getStyle(element,"overflow")||"auto";
if(element._overflow!=="hidden"){
element.style.overflow="hidden";
}
return element;
},undoClipping:function(element){
element=$(element);
if(!element._overflow){
return element;
}
element.style.overflow=element._overflow=="auto"?"":element._overflow;
element._overflow=null;
return element;
},cumulativeOffset:function(element){
var valueT=0,valueL=0;
do {
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
element=element.offsetParent;
}while(element);
return Element._returnOffset(valueL,valueT);
},positionedOffset:function(element){
var valueT=0,valueL=0;
do {
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
element=element.offsetParent;
if(element){
if(element.tagName=="BODY"){
break ;
}
var p=Element.getStyle(element,"position");
if(p=="relative"||p=="absolute"){
break ;
}
}
}while(element);
return Element._returnOffset(valueL,valueT);
},absolutize:function(element){
element=$(element);
if(element.getStyle("position")=="absolute"){
return ;
}
var offsets=element.positionedOffset();
var top=offsets[1];
var left=offsets[0];
var width=element.clientWidth;
var height=element.clientHeight;
element._originalLeft=left-parseFloat(element.style.left||0);
element._originalTop=top-parseFloat(element.style.top||0);
element._originalWidth=element.style.width;
element._originalHeight=element.style.height;
element.style.position="absolute";
element.style.top=top+"px";
element.style.left=left+"px";
element.style.width=width+"px";
element.style.height=height+"px";
return element;
},relativize:function(element){
element=$(element);
if(element.getStyle("position")=="relative"){
return ;
}
element.style.position="relative";
var top=parseFloat(element.style.top||0)-(element._originalTop||0);
var left=parseFloat(element.style.left||0)-(element._originalLeft||0);
element.style.top=top+"px";
element.style.left=left+"px";
element.style.height=element._originalHeight;
element.style.width=element._originalWidth;
return element;
},cumulativeScrollOffset:function(element){
var valueT=0,valueL=0;
do {
valueT+=element.scrollTop||0;
valueL+=element.scrollLeft||0;
element=element.parentNode;
}while(element);
return Element._returnOffset(valueL,valueT);
},getOffsetParent:function(element){
if(element["offsetParent"]){
return $(element.offsetParent);
}
if(element==document.body){
return $(element);
}
while((element=element.parentNode)&&element!=document.body){
if(Element.getStyle(element,"position")!="static"){
return $(element);
}
}
return $(document.body);
},viewportOffset:function(forElement){
var valueT=0,valueL=0;
var element=forElement;
do {
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
if(element.offsetParent==document.body&&Element.getStyle(element,"position")=="absolute"){
break ;
}
}while(element=element.offsetParent);
element=forElement;
do {
if(!Prototype.Browser.Opera||element.tagName=="BODY"){
valueT-=element.scrollTop||0;
valueL-=element.scrollLeft||0;
}
}while(element=element.parentNode);
return Element._returnOffset(valueL,valueT);
},clonePosition:function(element,source){
var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});
source=$(source);
var p=source.viewportOffset();
element=$(element);
var delta=[0,0];
var parent=null;
if(Element.getStyle(element,"position")=="absolute"){
parent=element.getOffsetParent();
delta=parent.viewportOffset();
}
if(parent==document.body){
delta[0]-=document.body.offsetLeft;
delta[1]-=document.body.offsetTop;
}
if(options.setLeft){
element.style.left=(p[0]-delta[0]+options.offsetLeft)+"px";
}
if(options.setTop){
element.style.top=(p[1]-delta[1]+options.offsetTop)+"px";
}
if(options.setWidth){
element.style.width=source.offsetWidth+"px";
}
if(options.setHeight){
element.style.height=source.offsetHeight+"px";
}
return element;
}};
Element.Methods.identify.counter=1;
Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});
Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};
if(!document.createRange||Prototype.Browser.Opera){
Element.Methods.insert=function(element,insertions){
element=$(element);
if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML))){
insertions={bottom:insertions};
}
var t=Element._insertionTranslations,content,position,pos,tagName;
for(position in insertions){
content=insertions[position];
position=position.toLowerCase();
pos=t[position];
if(content&&content.toElement){
content=content.toElement();
}
if(Object.isElement(content)){
pos.insert(element,content);
continue ;
}
content=Object.toHTML(content);
tagName=((position=="before"||position=="after")?element.parentNode:element).tagName.toUpperCase();
if(t.tags[tagName]){
var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());
if(position=="top"||position=="after"){
fragments.reverse();
}
fragments.each(pos.insert.curry(element));
}else {
element.insertAdjacentHTML(pos.adjacency,content.stripScripts());
}
content.evalScripts.bind(content).defer();
}
return element;
};
}
if(Prototype.Browser.Opera){
Element.Methods._getStyle=Element.Methods.getStyle;
Element.Methods.getStyle=function(element,style){
switch(style){
case "left":
case "top":
case "right":
case "bottom":
if(Element._getStyle(element,"position")=="static"){
return null;
}
default:
return Element._getStyle(element,style);
}
};
Element.Methods._readAttribute=Element.Methods.readAttribute;
Element.Methods.readAttribute=function(element,attribute){
if(attribute=="title"){
return element.title;
}
return Element._readAttribute(element,attribute);
};
}else {
if(Prototype.Browser.IE){
$w("positionedOffset getOffsetParent viewportOffset").each(function(method){
Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){
element=$(element);
var position=element.getStyle("position");
if(position!="static"){
return proceed(element);
}
element.setStyle({position:"relative"});
var value=proceed(element);
element.setStyle({position:position});
return value;
});
});
Element.Methods.getStyle=function(element,style){
element=$(element);
style=(style=="float"||style=="cssFloat")?"styleFloat":style.camelize();
var value=element.style[style];
if(!value&&element.currentStyle){
value=element.currentStyle[style];
}
if(style=="opacity"){
if(value=(element.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){
if(value[1]){
return parseFloat(value[1])/100;
}
}
return 1;
}
if(value=="auto"){
if((style=="width"||style=="height")&&(element.getStyle("display")!="none")){
return element["offset"+style.capitalize()]+"px";
}
return null;
}
return value;
};
Element.Methods.setOpacity=function(element,value){
function stripAlpha(filter){
return filter.replace(/alpha\([^\)]*\)/gi,"");
}
element=$(element);
var currentStyle=element.currentStyle;
if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=="normal")){
element.style.zoom=1;
}
var filter=element.getStyle("filter"),style=element.style;
if(value==1||value===""){
(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute("filter");
return element;
}else {
if(value<0.00001){
value=0;
}
}
style.filter=stripAlpha(filter)+"alpha(opacity="+(value*100)+")";
return element;
};
Element._attributeTranslations={read:{names:{"class":"className","for":"htmlFor"},values:{_getAttr:function(element,attribute){
return element.getAttribute(attribute,2);
},_getAttrNode:function(element,attribute){
var node=element.getAttributeNode(attribute);
return node?node.value:"";
},_getEv:function(element,attribute){
var attribute=element.getAttribute(attribute);
return attribute?attribute.toString().slice(23,-2):null;
},_flag:function(element,attribute){
return $(element).hasAttribute(attribute)?attribute:null;
},style:function(element){
return element.style.cssText.toLowerCase();
},title:function(element){
return element.title;
}}}};
Element._attributeTranslations.write={names:Object.clone(Element._attributeTranslations.read.names),values:{checked:function(element,value){
element.checked=!!value;
},style:function(element,value){
element.style.cssText=value?value:"";
}}};
Element._attributeTranslations.has={};
$w("colSpan rowSpan vAlign dateTime accessKey tabIndex "+"encType maxLength readOnly longDesc").each(function(attr){
Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;
Element._attributeTranslations.has[attr.toLowerCase()]=attr;
});
(function(v){
Object.extend(v,{href:v._getAttr,src:v._getAttr,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});
})(Element._attributeTranslations.read.values);
}else {
if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){
Element.Methods.setOpacity=function(element,value){
element=$(element);
element.style.opacity=(value==1)?0.999999:(value==="")?"":(value<0.00001)?0:value;
return element;
};
}else {
if(Prototype.Browser.WebKit){
Element.Methods.setOpacity=function(element,value){
element=$(element);
element.style.opacity=(value==1||value==="")?"":(value<0.00001)?0:value;
if(value==1){
if(element.tagName=="IMG"&&element.width){
element.width++;
element.width--;
}else {
try{
var n=document.createTextNode(" ");
element.appendChild(n);
element.removeChild(n);
}
catch(e){
}
}
}
return element;
};
Element.Methods.cumulativeOffset=function(element){
var valueT=0,valueL=0;
do {
valueT+=element.offsetTop||0;
valueL+=element.offsetLeft||0;
if(element.offsetParent==document.body){
if(Element.getStyle(element,"position")=="absolute"){
break ;
}
}
element=element.offsetParent;
}while(element);
return Element._returnOffset
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -