[ Index ] |
|
Code source de b2evolution 2.1.0-beta |
1 /* 2 * Nifty corners 3 * http://pro.html.it/articoli/id_599/idcat_31/pag_1/pag.html 4 */ 5 function NiftyCheck(){ 6 if(!document.getElementById || !document.createElement) 7 return(false); 8 isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName); 9 if(Array.prototype.push==null){Array.prototype.push=function(){ 10 this[this.length]=arguments[0]; return(this.length);}} 11 return(true); 12 } 13 14 function Rounded(selector,wich,bk,color,opt){ 15 var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false; 16 17 if(color=="transparent"){ 18 cn=cn+"x"; 19 ecolor=bk; 20 bk="transparent"; 21 } 22 else if(opt && opt.indexOf("border")>=0){ 23 var optar=opt.split(" "); 24 for(i=0;i<optar.length;i++) 25 if(optar[i].indexOf("#")>=0) ecolor=optar[i]; 26 if(ecolor=="") ecolor="#666"; 27 cn+="e"; 28 edges=true; 29 } 30 else if(opt && opt.indexOf("smooth")>=0){ 31 cn+="a"; 32 ecolor=Mix(bk,color); 33 } 34 if(opt && opt.indexOf("small")>=0) cn+="s"; 35 prefixt=cn; 36 prefixb=cn; 37 if(wich.indexOf("all")>=0){t=true;b=true} 38 else if(wich.indexOf("top")>=0) t="true"; 39 else if(wich.indexOf("tl")>=0){ 40 t="true"; 41 if(wich.indexOf("tr")<0) prefixt+="l"; 42 } 43 else if(wich.indexOf("tr")>=0){ 44 t="true"; 45 prefixt+="r"; 46 } 47 if(wich.indexOf("bottom")>=0) b=true; 48 else if(wich.indexOf("bl")>=0){ 49 b="true"; 50 if(wich.indexOf("br")<0) prefixb+="l"; 51 } 52 else if(wich.indexOf("br")>=0){ 53 b="true"; 54 prefixb+="r"; 55 } 56 var v=getElementsBySelector(selector); 57 var l=v.length; 58 for(i=0;i<l;i++){ 59 if(edges) AddBorder(v[i],ecolor); 60 if(t) AddTop(v[i],bk,color,ecolor,prefixt); 61 if(b) AddBottom(v[i],bk,color,ecolor,prefixb); 62 } 63 } 64 65 function AddBorder(el,bc){ 66 var i; 67 if(!el.passed){ 68 if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){ 69 var t=el.firstChild.nodeValue; 70 el.removeChild(el.lastChild); 71 var d=CreateEl("span"); 72 d.style.display="block"; 73 d.appendChild(document.createTextNode(t)); 74 el.appendChild(d); 75 } 76 for(i=0;i<el.childNodes.length;i++){ 77 if(el.childNodes[i].nodeType==1){ 78 el.childNodes[i].style.borderLeft="1px solid "+bc; 79 el.childNodes[i].style.borderRight="1px solid "+bc; 80 } 81 } 82 } 83 el.passed=true; 84 } 85 86 function AddTop(el,bk,color,bc,cn){ 87 var i,lim=4,d=CreateEl("b"); 88 89 if(cn.indexOf("s")>=0) lim=2; 90 if(bc) d.className="artop"; 91 else d.className="rtop"; 92 d.style.backgroundColor=bk; 93 for(i=1;i<=lim;i++){ 94 var x=CreateEl("b"); 95 x.className=cn + i; 96 x.style.backgroundColor=color; 97 if(bc) x.style.borderColor=bc; 98 d.appendChild(x); 99 } 100 el.style.paddingTop=0; 101 el.insertBefore(d,el.firstChild); 102 } 103 104 function AddBottom(el,bk,color,bc,cn){ 105 var i,lim=4,d=CreateEl("b"); 106 107 if(cn.indexOf("s")>=0) lim=2; 108 if(bc) d.className="artop"; 109 else d.className="rtop"; 110 d.style.backgroundColor=bk; 111 for(i=lim;i>0;i--){ 112 var x=CreateEl("b"); 113 x.className=cn + i; 114 x.style.backgroundColor=color; 115 if(bc) x.style.borderColor=bc; 116 d.appendChild(x); 117 } 118 el.style.paddingBottom=0; 119 el.appendChild(d); 120 } 121 122 function CreateEl(x){ 123 if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x)); 124 else return(document.createElement(x)); 125 } 126 127 function getElementsBySelector(selector){ 128 var i,selid="",selclass="",tag=selector,f,s=[],objlist=[]; 129 130 if(selector.indexOf(" ")>0){ //descendant selector like "tag#id tag" 131 s=selector.split(" "); 132 var fs=s[0].split("#"); 133 if(fs.length==1) return(objlist); 134 f=document.getElementById(fs[1]); 135 if(f) return(f.getElementsByTagName(s[1])); 136 return(objlist); 137 } 138 if(selector.indexOf("#")>0){ //id selector like "tag#id" 139 s=selector.split("#"); 140 tag=s[0]; 141 selid=s[1]; 142 } 143 if(selid!=""){ 144 f=document.getElementById(selid); 145 if(f) objlist.push(f); 146 return(objlist); 147 } 148 if(selector.indexOf(".")>0){ //class selector like "tag.class" 149 s=selector.split("."); 150 tag=s[0]; 151 selclass=s[1]; 152 } 153 var v=document.getElementsByTagName(tag); // tag selector like "tag" 154 if(selclass=="") 155 return(v); 156 for(i=0;i<v.length;i++){ 157 if(v[i].className.indexOf(selclass)>=0){ 158 objlist.push(v[i]); 159 } 160 } 161 return(objlist); 162 } 163 164 function Mix(c1,c2){ 165 var i,step1,step2,x,y,r=new Array(3); 166 if(c1.length==4)step1=1; 167 else step1=2; 168 if(c2.length==4) step2=1; 169 else step2=2; 170 for(i=0;i<3;i++){ 171 x=parseInt(c1.substr(1+step1*i,step1),16); 172 if(step1==1) x=16*x+x; 173 y=parseInt(c2.substr(1+step2*i,step2),16); 174 if(step2==1) y=16*y+y; 175 r[i]=Math.floor((x*50+y*50)/100); 176 } 177 return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16)); 178 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Nov 29 23:58:50 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |