| ÁöÁ¤À§Ä¡·Î À̵¿ÈÄ ¿øÇüÀ̵¿ | go to ¿øÇüÀ¸·Î À̵¿ |
À̰ÍÀ» Çϱâ À§Çؼ óÀ½ ·¹À̾ ¹èÄ¡ÇÒ ¶§ °¢ ¹èÄ¡µÈ ÁÂÇ¥·Î »ç¼±À¸·Î À̵¿Çϱ⸦ ÇÕ´Ï´Ù. »ç¼±À¸·Î À̵¿Çϱ⸦ ÂüÁ¶Çϼ¼¿ä.
À̵¿½Ãų ·¹À̾îµéÀÔ´Ï´Ù.
<div id="D1">1</div><div id="D2">2</div><div id="D3">3</div> <div id="D4">4</div><div id="D5">5</div><div id="D6">6</div> <div id="D7">7</div><div id="D8">8</div><div id="D9">9</div> <div id="D10">10</div>ÁöÁ¤ÇÑ styleÀÔ´Ï´Ù.
#D1 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:red; layer-background-color:red;}
#D2 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D3 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D4 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D5 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D6 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D7 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D8 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D9 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
#D10 { position:absolute; left:0; top:0; width:20; height:20; clip:rect(0,20,20,0); background-color:aqua; layer-background-color:aqua;}
ÀÌµé ·¹À̾ À̵¿Á¤º¸·Î ÁöÁ¤Çϱâ À§Çؼ ¾Æ·¡·Î ÁöÁ¤ÇÕ´Ï´Ù.
function initShiftToCircleLoop() {
shiftToCircleLayer = new Array();
if(n4) {
shiftToCircleLayer[0] = 1 //°¢ ·¹À̾îµéÀÇ À̵¿ °£°Ý½Ã°£
shiftToCircleLayer[1] = new shiftToCircleLoopSet(document.D1, 5, 100, 100, 200, 200, 10, 1, 3)
shiftToCircleLayer[2] = new shiftToCircleLoopSet(document.D2, 5, 100, 100, 200, 200, 10, 2, 3)
shiftToCircleLayer[3] = new shiftToCircleLoopSet(document.D3, 5, 100, 100, 200, 200, 10, 3, 3)
shiftToCircleLayer[4] = new shiftToCircleLoopSet(document.D4, 5, 100, 100, 200, 200, 10, 4, 3)
shiftToCircleLayer[5] = new shiftToCircleLoopSet(document.D5, 5, 100, 100, 200, 200, 10, 5, 3)
shiftToCircleLayer[6] = new shiftToCircleLoopSet(document.D6, 5, 100, 100, 200, 200, 10, 6, 3)
shiftToCircleLayer[7] = new shiftToCircleLoopSet(document.D7, 5, 100, 100, 200, 200, 10, 7, 3)
shiftToCircleLayer[8] = new shiftToCircleLoopSet(document.D8, 5, 100, 100, 200, 200, 10, 8, 3)
shiftToCircleLayer[9] = new shiftToCircleLoopSet(document.D9, 5, 100, 100, 200, 200, 10, 9, 3)
shiftToCircleLayer[10] = new shiftToCircleLoopSet(document.D10, 5, 100, 100, 200, 200, 10, 10, 3)
}
else if(e4) {
shiftToCircleLayer[0] = 1 //°¢ ·¹À̾îµéÀÇ À̵¿ °£°Ý½Ã°£
shiftToCircleLayer[1] = new shiftToCircleLoopSet(document.all.D1, 5, 100, 100, 200, 200, 10, 1, 3)
shiftToCircleLayer[2] = new shiftToCircleLoopSet(document.all.D2, 5, 100, 100, 200, 200, 10, 2, 3)
shiftToCircleLayer[3] = new shiftToCircleLoopSet(document.all.D3, 5, 100, 100, 200, 200, 10, 3, 3)
shiftToCircleLayer[4] = new shiftToCircleLoopSet(document.all.D4, 5, 100, 100, 200, 200, 10, 4, 3)
shiftToCircleLayer[5] = new shiftToCircleLoopSet(document.all.D5, 5, 100, 100, 200, 200, 10, 5, 3)
shiftToCircleLayer[6] = new shiftToCircleLoopSet(document.all.D6, 5, 100, 100, 200, 200, 10, 6, 3)
shiftToCircleLayer[7] = new shiftToCircleLoopSet(document.all.D7, 5, 100, 100, 200, 200, 10, 7, 3)
shiftToCircleLayer[8] = new shiftToCircleLoopSet(document.all.D8, 5, 100, 100, 200, 200, 10, 8, 3)
shiftToCircleLayer[9] = new shiftToCircleLoopSet(document.all.D9, 5, 100, 100, 200, 200, 10, 9, 3)
shiftToCircleLayer[10] = new shiftToCircleLoopSet(document.all.D10, 5, 100, 100, 200, 200, 10, 10, 3)
}
}
¿©±â¼ Ãß°¡ÇÑ ÀÎÀÚ´Â ¸Ç ³¡ÀÇ 3ÀÔ´Ï´Ù. »ç¼±À¸·Î À̵¿ÇÒ ¶§ °¢ ·¹À̾îµéÀÇ Çѹø À̵¿¾çÀÔ´Ï´Ù.
shiftToCircleLoopSet()À¸·Î ȸÀüÀ̵¿ Á¤º¸¸¦ ÁöÁ¤ÇÑ ·¹À̾
»ç¼±À̵¿ Á¤º¸·Î ÂüÁ¶Çϱâ À§Çؼ °°Àº ÇÔ¼ö shiftToCircleLoopSet()¸¦ »ç¿ëÇϰí shiftToCircleLoopSet()¿¡ »ç¼±À̵¿
Á¤º¸¸¦ ÁöÁ¤ÇÏ´Â ÇÔ¼ö¸¦ ³Ö¾îÁÝ´Ï´Ù. ¾Æ·¡´Â shiftToCircleLoopSet() ÇÔ¼öÀÔ´Ï´Ù.
function shiftToCircleLoopSet(layer, angleIns, holizontalLength, verticalLength, circleLeftCenter, circleTopCenter, totalLayer, layerOrder, shift) {
//shift : »ç¼±À̵¿¾ç
this.layer = layer
this.moveHol = holizontalLength
this.moveVer = verticalLength
this.moveAngleIns = angleIns
this.moveAngle = 360-(360/totalLayer*layerOrder)
this.leftTo = Math.floor(circleLeftCenter + holizontalLength * Math.cos(this.moveAngle*Math.PI/180) )
this.topTo = Math.floor(circleTopCenter + verticalLength * Math.sin(this.moveAngle*Math.PI/180) )
this.centerX = this.leftTo - holizontalLength * Math.cos(this.moveAngle*Math.PI/180)
this.centerY = this.topTo - verticalLength * Math.sin(this.moveAngle*Math.PI/180)
this.oblLayer = new obliqueSet(this.layer, this.leftTo, this.topTo, shift)
}
·Î »ç¼±À̵¿ Á¤º¸¸¦ ȸÀüÀ̵¿ Á¤º¸ÀÇ ÇϺΠÀÎÀÚ·Î ÁöÁ¤À» ÇÕ´Ï´Ù. ȸÀüÀ̵¿Á¤º¸¸¦ °¡Áö°í ÀÖ´Â shiftToCircleLayer ¾Æ·¡¿¡
oblLayer°¡ ÀÖ½À´Ï´Ù. ±×·¡¼ »ç¼±À̵¿ Á¤º¸¸¦ Á¦¾îÇϱâ À§Çؼ´Â shiftToCircleLayer[°¢ ·¹À̾îÀÎÀÚ Á¤¼ö].oblLayer ·Î
»ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. this.leftTo, this.topToÀº »ç¼±À¸·Î º¸³¾ ¿øÇüÀ̵¿¿¡¼ óÀ½ À§Ä¡ÀÔ´Ï´Ù. À̰÷±îÁö »ç¼±À¸·Î º¸³À´Ï´Ù. »ç¼±À̵¿ Á¤º¸¸¦ ÁöÁ¤ÇÏ´Â obliqueSet()ÀÔ´Ï´Ù.
function obliqueInfo(layer, leftTo, topTo, leftOrTop) {
//·¹À̾îÀÇ À̵¿¾çÀ» 1ÀÌÇÏÀÇ ¼ýÀÚ·Î ³ª´©¾î ¹ÝȯÇÔ.
var bitL=bitT=null
var flagLeft=flagTop=1
if(n4) {
bitL = leftTo-layer.left
bitT = topTo-layer.top
}
else if(e4) {
bitL = leftTo-layer.style.pixelLeft
bitT = topTo-layer.style.pixelTop
}
if(bitL <0) flagLeft = -1
if(bitT <0) flagTop = -1
bitL = Math.abs(bitL)
bitT = Math.abs(bitT)
if(bitL > bitT) { bitT /= bitL; bitL /= bitL; }
else { bitL /= bitT; bitT /= bitT; }
if(leftOrTop == "left") return bitL*flagLeft
else if(leftOrTop == "top") return bitT*flagTop
else if(leftOrTop == "leftFlag") return flagLeft
else if(leftOrTop == "topFlag") return flagTop
}
function obliqueSet(layer, leftTo, topTo, shift) {
this.layer=layer
this.leftBit=obliqueInfo(layer, leftTo, topTo, "left")
this.topBit=obliqueInfo(layer, leftTo, topTo, "top")
this.leftFlag=obliqueInfo(layer, leftTo, topTo, "leftFlag")
this.topFlag=obliqueInfo(layer, leftTo, topTo, "topFlag")
this.moveLeftTo = leftTo
this.moveTopTo = topTo
this.leftMoved = false
this.topMoved = false
this.moveLeftBit = this.leftBit * shift
this.moveTopBit = this.topBit * shift
this.overOneLeft=0
this.overOneTop=0
}
left, topÀÇ ÁÂÇ¥¸¸ ÀÖÀ¸¸é »ç¼±À̵¿°ú °°½À´Ï´Ù. ƯÁ¤ ÁÂÇ¥·Î »ç¼±À̵¿À» ÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í ¸ÕÀú ÁöÁ¤ÇÑ À§Ä¡·Î
»ç¼±À¸·Î À̵¿À» ½ÃŰ´Â moveOblique()¸¦ ½ÇÇàÇÕ´Ï´Ù. moveOblique() ÇÔ¼öÀÔ´Ï´Ù.
obliqueLeftMoved=obliqueTopMoved=1
//moveOblique()ÇÔ¼ö¿¡¼ »ç¼±À¸·Î À̵¿ÇÏ´Â ·¹À̾îµéÀÇ À̵¿Á¾·á¸¦ È®ÀÎÇÔ.
function moveOblique() {
if(n4) {
var i=1, tempL=tempT=0
for( ; i < shiftToCircleLayer.length; i++ ) {
shiftToCircleLayer[i].oblLayer.overOneLeft += shiftToCircleLayer[i].oblLayer.moveLeftBit
shiftToCircleLayer[i].oblLayer.overOneTop += shiftToCircleLayer[i].oblLayer.moveTopBit
tempL = Math.floor(shiftToCircleLayer[i].oblLayer.overOneLeft)
tempT = Math.floor(shiftToCircleLayer[i].oblLayer.overOneTop)
shiftToCircleLayer[i].oblLayer.overOneLeft -= tempL
shiftToCircleLayer[i].oblLayer.overOneTop -= tempT
if( shiftToCircleLayer[i].oblLayer.layer.left < shiftToCircleLayer[i].oblLayer.moveLeftTo - (tempL*shiftToCircleLayer[i].oblLayer.leftFlag)) {
shiftToCircleLayer[i].oblLayer.layer.left += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.left < shiftToCircleLayer[i].oblLayer.moveLeftTo) {
while( shiftToCircleLayer[i].oblLayer.layer.left > shiftToCircleLayer[i].oblLayer.moveLeftTo - tempL )
tempL--
shiftToCircleLayer[i].oblLayer.layer.left += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.left > shiftToCircleLayer[i].oblLayer.moveLeftTo + (tempL*shiftToCircleLayer[i].oblLayer.leftFlag)) {
shiftToCircleLayer[i].oblLayer.layer.left += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.left > shiftToCircleLayer[i].oblLayer.moveLeftTo) {
while( shiftToCircleLayer[i].oblLayer.layer.left < shiftToCircleLayer[i].oblLayer.moveLeftTo - tempL )
tempL++;
shiftToCircleLayer[i].oblLayer.layer.left += tempL
}
else if( !shiftToCircleLayer[i].oblLayer.leftMoved) {
shiftToCircleLayer[i].oblLayer.leftMoved = true
obliqueLeftMoved++
}
if( shiftToCircleLayer[i].oblLayer.layer.top < shiftToCircleLayer[i].oblLayer.moveTopTo - (tempT*shiftToCircleLayer[i].oblLayer.topFlag)) {
shiftToCircleLayer[i].oblLayer.layer.top += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.top < shiftToCircleLayer[i].oblLayer.moveTopTo) {
while( shiftToCircleLayer[i].oblLayer.layer.top > shiftToCircleLayer[i].oblLayer.moveTopTo - tempT )
tempT--
shiftToCircleLayer[i].oblLayer.layer.top += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.top > shiftToCircleLayer[i].oblLayer.moveTopTo + (tempT*shiftToCircleLayer[i].oblLayer.topFlag)) {
shiftToCircleLayer[i].oblLayer.layer.top += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.top > shiftToCircleLayer[i].oblLayer.moveTopTo) {
while( shiftToCircleLayer[i].oblLayer.layer.top < shiftToCircleLayer[i].oblLayer.moveTopTo - tempT )
tempT++;
shiftToCircleLayer[i].oblLayer.layer.top += tempT
}
else if( !shiftToCircleLayer[i].oblLayer.topMoved) {
shiftToCircleLayer[i].oblLayer.topMoved = true
obliqueTopMoved++
}
}
}
else if(e4) {
var i=1, tempL=tempT=0
for( ; i < shiftToCircleLayer.length; i++ ) {
shiftToCircleLayer[i].oblLayer.overOneLeft += shiftToCircleLayer[i].oblLayer.moveLeftBit
shiftToCircleLayer[i].oblLayer.overOneTop += shiftToCircleLayer[i].oblLayer.moveTopBit
tempL = Math.floor(shiftToCircleLayer[i].oblLayer.overOneLeft)
tempT = Math.floor(shiftToCircleLayer[i].oblLayer.overOneTop)
shiftToCircleLayer[i].oblLayer.overOneLeft -= tempL
shiftToCircleLayer[i].oblLayer.overOneTop -= tempT
if( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft < shiftToCircleLayer[i].oblLayer.moveLeftTo - (tempL*shiftToCircleLayer[i].oblLayer.leftFlag)) {
shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft < shiftToCircleLayer[i].oblLayer.moveLeftTo) {
while( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft > shiftToCircleLayer[i].oblLayer.moveLeftTo - tempL )
tempL--
shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft > shiftToCircleLayer[i].oblLayer.moveLeftTo + (tempL*shiftToCircleLayer[i].oblLayer.leftFlag)) {
shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft += tempL
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft > shiftToCircleLayer[i].oblLayer.moveLeftTo) {
while( shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft < shiftToCircleLayer[i].oblLayer.moveLeftTo - tempL )
tempL++;
shiftToCircleLayer[i].oblLayer.layer.style.pixelLeft += tempL
}
else if( !shiftToCircleLayer[i].oblLayer.leftMoved) {
shiftToCircleLayer[i].oblLayer.leftMoved = true
obliqueLeftMoved++
}
if( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop < shiftToCircleLayer[i].oblLayer.moveTopTo - (tempT*shiftToCircleLayer[i].oblLayer.topFlag)) {
shiftToCircleLayer[i].oblLayer.layer.style.pixelTop += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop < shiftToCircleLayer[i].oblLayer.moveTopTo) {
while( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop > shiftToCircleLayer[i].oblLayer.moveTopTo - tempT )
tempT--
shiftToCircleLayer[i].oblLayer.layer.style.pixelTop += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop > shiftToCircleLayer[i].oblLayer.moveTopTo + (tempT*shiftToCircleLayer[i].oblLayer.topFlag)) {
shiftToCircleLayer[i].oblLayer.layer.style.pixelTop += tempT
}
else if( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop > shiftToCircleLayer[i].oblLayer.moveTopTo) {
while( shiftToCircleLayer[i].oblLayer.layer.style.pixelTop < shiftToCircleLayer[i].oblLayer.moveTopTo - tempT )
tempT++;
shiftToCircleLayer[i].oblLayer.layer.style.pixelTop += tempT
}
else if( !shiftToCircleLayer[i].oblLayer.topMoved) {
shiftToCircleLayer[i].oblLayer.topMoved = true
obliqueTopMoved++
}
}
}
if(obliqueLeftMoved < shiftToCircleLayer.length || obliqueTopMoved < shiftToCircleLayer.length)
moveOblique_ID = setTimeout("clearTimeout(moveOblique_ID); moveOblique()", 1)
else { moveCircleLoop(); } //ȸÀü½ÃÀÛ ÁöÁ¡.
}
·Î »ç¼±À̵¿À» ½ÃÀÛÇÏ°í ¸ðµç ·¹À̾ »ç¼±À̵¿ÀÌ ³¡³ª¸é ȸÀüÀ̵¿ ÇÔ¼ö moveCircleLoop() ÇÔ¼ö¸¦ ½ÇÇàÇÕ´Ï´Ù.
function moveCircleLoop() {
for(var i=1; i < shiftToCircleLayer.length; i++) {
if(n4) {
shiftToCircleLayer[i].layer.left = shiftToCircleLayer[i].centerX + shiftToCircleLayer[i].moveHol * Math.cos(shiftToCircleLayer[i].moveAngle*Math.PI/180)
shiftToCircleLayer[i].layer.top = shiftToCircleLayer[i].centerY + shiftToCircleLayer[i].moveVer * Math.sin(shiftToCircleLayer[i].moveAngle*Math.PI/180)
}
else if(e4) {
shiftToCircleLayer[i].layer.style.pixelLeft = shiftToCircleLayer[i].centerX + shiftToCircleLayer[i].moveHol * Math.cos(shiftToCircleLayer[i].moveAngle*Math.PI/180)
shiftToCircleLayer[i].layer.style.pixelTop = shiftToCircleLayer[i].centerY + shiftToCircleLayer[i].moveVer * Math.sin(shiftToCircleLayer[i].moveAngle*Math.PI/180)
}
shiftToCircleLayer[i].moveAngle += shiftToCircleLayer[i].moveAngleIns
}
moveCircleLoop_ID = setTimeout("clearTimeout(moveCircleLoop_ID); moveCircleLoop()", shiftToCircleLayer[0]);
}
·Î ȸÀüÀ̵¿À» ÇÕ´Ï´Ù.