π» Programming/Javascript
[Javascript / μλ°μ€ν¬λ¦½νΈ] κ°μ’ #19 - Animation ( μ λλ©μ΄μ )
μ, μ΄λ²μλ μλ°μ€ν¬λ¦½νΈλ₯Ό μ΄μ©ν΄μ νλ©΄μ μ λλ©μ΄μ μ 보μ¬μ£Όλ λ°©λ²μ νλ² λ°°μλ³ΌκΉμ?
μμνκΈ° μ μ μ΄λ―Έ μλ°μ€ν¬λ¦½νΈ κΈ°λ°μ μ λλ©μ΄μ μ μν λΌμ΄λΈλ¬λ¦¬κ° μ‘΄μ¬νλ€λ κ²μ μκ³ λμ΄κ°μλ€. ( Script.Aculo.us. )
μ΄λ° λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄ κ°νΈνκ² μ λλ©μ΄μ μ λ§λ€ μ μκ² μ§λ§ κ·Έλλ μ΄λ€μμΌλ‘ λμμ νλμ§λ μκ³ λμ΄κ°μΌ λμ€μ λ³ΈμΈμ΄ μ΄λ° λΌμ΄λΈλ¬λ¦¬λ₯Ό μμ ν΄μ λ μ’κ² λ°κΏ μλ μμ΅λλ€.
κ·ΈλΌ μμν΄λ³ΌκΉμ? μ΄λ² ν¬μ€ν μμλ κΈ°λ³Έμ μΈ κ°λ μ λν΄μ λ€λ£° κ²λλ€. μ΄λ€ μμΌλ‘ μ λλ©μ΄μ μ΄ μμ±μ΄ λλμ§ λ§μ΄μ£ .
κ°μ₯ λ§μ΄ μ°μ΄λ ν¨μλΆν° νμΈμ ν΄λ³ΌκΉμ?
-
setTimeout( ν¨μλͺ , λ°λ¦¬μ΄) - μ§μ ν λ°λ¦¬μ΄ νμ ν¨μλ₯Ό μ€νμν΅λλ€. ( ν¨μκ° μ’ λ£λ λ€μ νΉμ μκ°μ΄ μ§λλ©΄ λ€μ ν¨μλ₯Ό μ€νμν΅λλ€. )
-
setInterval( ν¨μλͺ , λ°λ¦¬μ΄) - μ§μ ν λ°λ¦¬μ΄κ° μ§λ λλ§λ€ νλ²μ© ν¨μλ₯Ό μ€νμν΅λλ€. ( μ€νμν¨ ν¨μκ° λλμ§ μμλ νΉμ μκ°μ΄ μ§λλ©΄ λ μ€νμν΅λλ€. )
-
clearTimeout( setTimeout() ν¨μμ λ³μ ) - setTimeout() ν¨μμ λ³μμ νμ΄λ¨Έλ₯Ό ν΄λ¦¬μ΄μν΅λλ€. ( λ¬΄μ¨ λ§μΈμ§λ μμ λ₯Ό 보면 μ΄ν΄κ° κ°μ€κ²λλ€. )
본격μ μΌλ‘ μμνκΈ° μ μ DOM κ°μ²΄μ μμ±μ μ΄μ©ν΄μ νΉμ κ°μ²΄μ μμΉλ₯Ό μ‘°μ ν μ μλ€λ κ²μ μκ³ λμ΄κ°μλ©΄ μ’μ κ² κ°μ΅λλ€. top μ΄λ left κ°μ μμ±μ μ€ μ μλκ±°μ£ . κ°λ¨ν λ¬Έλ²μ λ€μκ³Ό κ°μ΅λλ€.
|
μλμ μ λλ©μ΄μ
μ΄λ² μμ λ λ²νΌμ λλ₯΄λ©΄ μ΄λ―Έμ§λ₯Ό μ€λ₯Έμͺ½μΌλ‘ 10ν½μ μ© μμ§μ¬μ£Όλ μμ μ λλ€. λ²νΌμ λλ₯΄λ©΄ moveRight()ν¨μλ₯Ό νΈμΆμ νλλ° μ΄ ν¨μλ imgObj.style.leftλ₯Ό μ΄μ©ν΄μ μΌμͺ½μμ μΌλ§λ λ¨μ΄μ Έ μλμ§λ₯Ό μ§μ ν΄μ€λλ€. init()μμλ leftμ μ΄κΈ°κ°μ μ§μ ν΄μ£Όλλ° μ΄ μ΄κΈ°κ°μ μ«μλ‘ λ³ννλ€μ 10μ λνκ°μ λ€μ leftμ λ£μ΄μ£Όκ³ μλ€μ. μ¦, μ΄κΈ°μμΉμμ κ³μ 10μ© λν΄μ§λ ν¨μκ° λλ κ²μ λλ€. μ΄ν΄κ° μλμλ©΄ init()μμ leftμ μ«μλ₯Ό λ³κ²½ν΄μ€λ€μ moveRight()μμ parseInt(...)λΆλΆμ λΉΌκ³ κ·Έλ₯ 10 + 'px'λ§ leftμ ν λΉν΄μ€ 보μΈμ.
|
μ μμ μ λν λ¨κ³μ μ€νμ μλμ κ°μ΅λλ€.
-
μλ°μ€ν¬λ¦½νΈμ getElementById() ν¨μλ₯Ό μ΄μ©ν΄μ DOM κ°μ²΄λ₯Ό μ»μ΄μ΅λλ€. μ¬κΈ°μλ μ΄λ―Έμ§κ° λκ² μ£ . κ·Έλ κ² μ»μ΄μ¨ κ°μ²΄λ₯Ό imgObj λ³μμ ν λΉν©λλ€.
-
Windowκ° λ‘λλ λ init() ν¨μκ° μ€νμ΄ λλ©΄μ imgObj κ°μ²΄μ position κ³Ό left μμ±μ μ΄κΈ°ν ν΄μ€λλ€.
-
κ·Έλ¦¬κ³ λ²νΌμ΄ νλ©΄μ μμ±μ΄ λκ³ , μ΄ λ²νΌμ΄ ν΄λ¦μ΄ λλ μκ° moveRight() ν¨μκ° νΈμΆλλ©΄μ left κ±°λ¦¬κ° 10 ν½μ μ¦κ°νκ² λ©λλ€. μ΄ μ«μμ λ§μ΄λμ€ λΆνΈλ₯Ό λΆμ΄λ©΄ λ°λμͺ½μΌλ‘ μμ§μ΄κ² λ©λλ€.
μλ μ λλ©μ΄μ
μμμλ λ²νΌμ ν΄λ¦νμ λ μμ§μ΄λλ‘ νμ§λ§ μ΄λ²μλ μκ°μ λ°λΌμ μμ§μ΄λλ‘ ν΄λ³΄κ² μ΅λλ€. μ μΌ μ²μμ μ€λͺ λλ¦° μΈκ°μ§ ν¨μλ€ μ€μμ setTimeout() ν¨μλ₯Ό μ΄μ©νλ μμ μ λλ€.
|
μ΄λ²μλ μμκ³Ό μ’ λ£λ²νΌ λκ°κ° μκ²Όκ³ μμλ²νΌμ λλ₯΄λ©΄ moveRight()ν¨μκ° νΈμΆμ΄ λλλ° μ²«λ²μ§Έ μμ μμ μ°μλ moveRight()κ³Όλ μ‘°κΈ λ€λ₯΄λ€μ κ·Έμ΅Έ? νμ€μ΄ λ μκ²Όμ΅λλ€. animateλ³μμ setTimeout(moveRight, 20)μ ν λΉν΄μ£Όμλ€μ. setTimeout ν¨μλ₯Ό μ΄μ©ν΄μ moveRightν¨μλ₯Ό 20λ°λ¦¬μ΄ λ§λ€ μ€νμ μν€κ³ μμ΅λλ€.
λ§μ°μ€ μ΄λ²€νΈλ₯Ό μ΄μ©ν μ λλ©μ΄μ
μλ μμ λ λ§μ°μ€κ° νΉμ μ΄λ―Έμ§ μμ μ¬λΌκ°μ λ μ΄λ―Έμ§λ₯Ό λ€λ₯Έ μ΄λ―Έμ§λ‘ λ³κ²½ν΄μ£Όλ κ²μ λλ€.
|
μ μμ€κ° μ€νλλ μμλ₯Ό νλ² λ³ΌκΉμ?
-
νμ΄μ§κ° λ‘λ©λ λ if λ¬Έμμ μ΄λ―Έμ§ κ°μ²΄κ° μ‘΄μ¬νλμ§ κ²μ¬ν©λλ€. μ΄λ―Έμ§ κ°μ²΄κ° μ‘΄μ¬νλ©΄ λΈλ½λ΄μ λͺ λ Ήμ μ€ννμ§λ§ μ‘΄μ¬νμ§ μμΌλ©΄ μ€ννμ§ μμ΅λλ€.
-
Image() μμμλ₯Ό μ΄μ©ν΄μ 2κ°μ μ΄λ―Έμ§ κ°μ²΄λ₯Ό μμ±νκ³ κ°κ°μ μ΄λ―Έμ§ μμ€λ₯Ό μ§μ ν΄μ€λλ€.
-
<a>μμ # (hash mark) λ λ§ν¬λ₯Ό μμ μ£Όλ μν μ ν©λλ€. ν΄λνμ λ νΉμ URLλ‘ κ°λ €λ μλλ₯Ό μνκ² λ©λλ€.
-
onMouseOver μ΄λ²€νΈ νΈλ€λ¬λ λ§μ°μ€κ° λ§ν¬(μ΄λ―Έμ§) μμ μ¬λΌμ¬ λ μ΄λ²€νΈλ₯Ό λ°μμν€λ μμ±μ λλ€. κ·Έλ¦¬κ³ λ°λλ‘ onMouseOut μ΄λ²€νΈ νΈλ€λ¬λ λ§μ°μ€κ° λ§ν¬(μ΄λ―Έμ§)λ°μΌλ‘ λκ° λ μ΄λ²€νΈλ₯Ό λ°μμν΅λλ€.
μ§μ ν μ€νΈν΄λ³΄κ³ μ΄κ²μ κ² λ°κΏμλ ν΄λ³΄μΈμ. κ·ΈλμΌ μ€λ ₯μ΄ μκΉλλ€. κ°λ°μλ‘μμ νμ΄ μκΈ°λ κ±°μ£ .
κ²μμΌλ¦ν°νν μμ΄ν λ§ μ¬μ£Όμ§ λ§κ³ μ¬λ¬λΆμ νμ κΈΈλ¬λ³΄μΈμ.
Reference : http://www.tutorialspoint.com/javascript/javascript_animation.htm