<script language="javascript"> var gColorCode=1,iTimer; function fnAddValue(obj,col){ var oSpan = document.createElement("SPAN"); var iT=0+parseInt(obj.value)+parseInt(obj.addvalue); if (iT>=100){ obj.addvalue=100-obj.value; iT=100; } oSpan.style.width = obj.addvalue + "%"; oSpan.style.height= "100%"; oSpan.style.left="0px"; //alert(col); oSpan.style.backgroundColor = (col==null)? "blue":col; obj.appendChild(oSpan); oBColor.style.backgroundColor=oSpan.style.backgroundColor; obj.value=iT; oPro.value=iT+"%"; } toHex2 = function(n){ n=(n<255)? ((n<0)? 0:n):255; return (n.toString(16).length==1)?"0"+n.toString(16):n.toString(16); } function fnSetColorCode(n){ var col='',i=gColorCode; if(n!=null)i=n; // i=(i<255)? ((i<0)? 0:i):255; if (i>=100) window.clearInterval(iTimer); col="#"+toHex2(parseInt(oRf.value)+Math.floor((parseInt(oRt.value)-parseInt(oRf.value))/100)*i); col+=toHex2(parseInt(oGf.value)+Math.floor((parseInt(oGt.value)-parseInt(oGf.value))/100)*i); col+=toHex2(parseInt(oBf.value)+Math.floor((parseInt(oBt.value)-parseInt(oBf.value))/100)*i); return col; } function fnAuto(){ fnAddValue(oStatusBar,fnSetColorCode()); gColorCode++; } function fnChkNotNum(){ //숫자만 입력 받습니다. if(event.keyCode<48 | event.keyCode>57){ alert("숫자만 입력됩니다."); event.returnValue=false; } } function fnRangeCheck_0_255(obj){ //0보다 작으면 0으로 255보다 크면 255로 var num01=parseInt(obj.value); if(num01<0) obj.value=0; if(num01>255) obj.value=255; } </script> <h1>진행상태바 예제</h1> <div id="oStatusBar" style="border:3 groove black; background-color:lightgray;height:40; width:506;" value=0 addvalue=15> <span id=oSam" width=20 style="background-color:red"></span> </div> <input id=oPro type=textbox size=3> 현재 색깔:<input id=oBColor type=textbox size=3> <br><br> <input id=oNum1 size=3 onChange="oStatusBar.addvalue=this.value" onkeypress="fnChkNotNum()" value=15> <input type=button value="추가 값(%)" title="앞의 수치만큼 %로 증가함" onclick="window.clearInterval(iTimer);fnAddValue(oStatusBar,fnSetColorCode(0));"> <input type=button value="초기화" onclick="window.clearInterval(iTimer);oStatusBar.innerHTML='';oStatusBar.value=0;oPro.value='0%';oStatusBar.addvalue=oNum1.value;gColorCode=1;"> <input type=button value="자동" title="색을 변화시키면서 1%씩증가함" onclick="window.clearInterval(iTimer);gColorCode=0;oStatusBar.addvalue=1;;iTimer=window.setInterval(fnAuto,30);"><br><br> 색깔 변화시에(값은 0-255사이) 추가값시에는 앞의 색 이용함: <div border=1> R<input id="oRf" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=0> G<input id="oGf" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=255> B<input id="oBf" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=0> 에서 R<input id="oRt" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=255> G<input id="oGt" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=0> B<input id="oBt" size=3 onChange="fnRangeCheck_0_255(this);" onkeypress="fnChkNotNum()" value=255> 까지로 변화합니다. </div>