링크 마우스 오버시 그라디언트효과
*** 아래 내용을 복사하여 rollover.htc 라 이름 지으세요.*** (파일 이름은 아무거나 상관 없지만 확장자는 꼭 htc 라 할것) <public:component> <public:attach event="onmouseover" onevent="domouseover()"> <public:attach event="onmouseout" onevent="domouseout()"> <script language="javascript"> function domouseover() { with(element) { filters.item(0).Apply(); filters.item(0).Play(); } } function domouseout() { with(element) { filters.item(0).Apply(); filters.item(0).Play(); } } </script> </public:component> *** 아래 소스를 복사하여 rollover.js라 만드세요.*** <script language=JavaScript> function findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); if(!x && document.getElementById) x=document.getElementById(n); return x; } function swapImage() { var i,j=0,x,a=swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} } </script> <SCRIPT LANGUAGE="JavaScript"> var rate = 20; var obj; var act = 0; var elmH = 0; var elmS = 128; var elmV = 255; var clrOrg; var TimerID; if (navigator.appName.indexOf("Microsoft",0) != -1 && parseInt(navigator.appVersion) >= 4) { Browser = true; } else { Browser = false; } if (Browser) { document.onmouseover = doRainbowAnchor; document.onmouseout = stopRainbowAnchor; } function doRainbow() { if (Browser && act != 1) { act = 1; obj = event.srcElement; clrOrg = obj.style.color; TimerID = setInterval("ChangeColor()",100); } } function stopRainbow() { if (Browser && act != 0) { obj.style.color = clrOrg; clearInterval(TimerID); act = 0; } } function doRainbowAnchor() { if (Browser && act != 1) { obj = event.srcElement; while (obj.tagName != 'A' && obj.tagName != 'BODY') { obj = obj.parentElement; if (obj.tagName == 'A' || obj.tagName == 'BODY') break; } if (obj.tagName == 'A' && obj.href != '') { act = 1; clrOrg = obj.style.color; TimerID = setInterval("ChangeColor()",100); } } } function stopRainbowAnchor() { if (Browser && act != 0) { if (obj.tagName == 'A') { obj.style.color = clrOrg; clearInterval(TimerID); act = 0; } } } function ChangeColor() { obj.style.color = makeColor(); } function makeColor() { if (elmS == 0) { elmR = elmV; elmG = elmV; elmB = elmV; } else { t1 = elmV; t2 = (255 - elmS) * elmV / 255; t3 = elmH % 60; t3 = (t1 - t2) * t3 / 60; if (elmH < 60) { elmR = t1; elmB = t2; elmG = t2 + t3; } else if (elmH < 120) { elmG = t1; elmB = t2; elmR = t1 - t3; } else if (elmH < 180) { elmG = t1; elmR = t2; elmB = t2 + t3; } else if (elmH < 240) { elmB = t1; elmR = t2; elmG = t1 - t3; } else if (elmH < 300) { elmB = t1; elmG = t2; elmR = t2 + t3; } else if (elmH < 360) { elmR = t1; elmG = t2; elmB = t1 - t3; } else { elmR = 0; elmG = 0; elmB = 0; } } elmR = Math.floor(elmR); elmG = Math.floor(elmG); elmB = Math.floor(elmB); clrRGB = '#' + elmR.toString(16) + elmG.toString(16) + elmB.toString(16); elmH = elmH + rate; if (elmH >= 360) elmH = 0; return clrRGB; } </script> *** 일반 html문서에 적용방법 1. head부분에 <script language="JavaScript" src="rollover.js"></script>라 넣고 2. 링크 스타일 부분에 a { height:1; behavior: url(htc경로);filter:progid:dximagetransform.microsoft.gradientwipe(duration=1);} 을 추가 합니다. *** 게시판에 적용방법 1. 스킨에 style.css에서 링크 스타일 부분에 a { height:1; behavior: url(htc경로);filter:progid:dximagetransform.microsoft.gradientwipe(duration=1);} 을 추가 합니다. 2. 스킨에 setup.php를 꺼내 맨윗줄에 rollover.js파일을 그대로 풀어서 복사하여 붙여 넣기 하시면 됩니다. 즉, 저 위에 있는 js소스를 게시판에 적용할땐 그대로 복사하여 쓰고 html문서에 적용할땐 js라고 파일을 만들어 사용하시라는 이야기 입니다. |
'컴퓨터-유용한팁 > 스크립트' 카테고리의 다른 글
클릭시 입력창에 글입력 준비 (0) | 2015.09.07 |
---|---|
견적서 총 합계 구하는 방법 (0) | 2015.09.07 |
카운트 다운 소스(정해진날) (0) | 2015.09.07 |
상태바에 글씨 써졌다,지워졌다 (0) | 2015.09.07 |
플래시를 랜덤하게 나타내기 (0) | 2015.09.07 |