문서 객체 모델(DOM, Document Object Model)은 document 객체와 관련된 객체의 집합입니다.
문서 객체 모델을 사용하면 HTML 페이지에 태그를 추가 수정 제거 할 수 있습니다.
다음은 이 문서 객체 모델을 이용한 글자들의 움직임을 만든 예제입니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<!-- 보조 함수 -->
<script>
//랜덤한 정수를 생성
function nextRandomInteger(limit){
return Math.round(Math.random() * limit);
}
//랜덤한 알파벳을 리턴
var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
function randomAlphabet(){
return alphabet.charAt(nextRandomInteger(25));
}
//양음으로 랜덤한 속도를 생성하는 함수
function randomSpeed(maxSpeed){
return Math.random() * maxSpeed - Math.random() * maxSpeed;
}
</script>
<!-- 생성자 함수 -->
<script>
//MovingText의 생성자 함수
var canvasWidth = 700;
var canvasHeight = 400;
function MovingText(){
//위치와 속도 속성
this.x = nextRandomInteger(canvasWidth);
this.y = nextRandomInteger(canvasHeight);
this.vx = randomSpeed(10);
this.vy = randomSpeed(10);
//문서 객체를 생성합니다.
this.body = document.createElement('h1');
this.body.innerHTML = randomAlphabet();
this.body.style.position = 'absolute';
//문서 객체를 document.body에 추가합니다.
document.body.appendChild(this.body);
MovingText.prototype.move = function(){
//범위 검사
if(this.x < 0 || this.x > canvasWidth){
this.vx *= -1;
}
if(this.y < 0 || this.y > canvasWidth){
this.vy *= -1;
}
//이동
this.x += this.vx;
this.y += this.vy;
//화면에 이동표시
this.body.style.left = this.x + 'px';
this.body.style.top = this.y + 'px';
}
}
</script>
<!-- window.onload -->
<script>
window.onload = function(){
//변수를 선언
var movingTexts = [];
//배열에 MovingText 객체 100개를 생성합니다.
for(var i = 0; i < 100; i++){
movingTexts.push(new MovingText());
}
//움직이기
setInterval(function (){
for(var i in movingTexts){
movingTexts[i].move();
}
}, 1000/60);
}
</script>
<body>
</body>
</html>
실행 화면
글자들이 랜덤으로 나와서 여기저기 움직입니다.
'프로그래밍 > 자바스크립트' 카테고리의 다른 글
Javascript - 함수 유효범위와 클로저 (0) | 2015.01.22 |
---|---|
Javascript - 연산자, 제어문, 예외처리 (0) | 2015.01.21 |
Javascript - 변수, 데이터 타입, 리터럴 (0) | 2015.01.21 |
자바스크립트 - EJS 형식에서 forEach문 의미 및 사용법 (0) | 2015.01.06 |
자바스크립트 - for...in 문 (0) | 2015.01.06 |
자바스크립트 - DOM level2 이벤트 모델 (0) | 2014.09.09 |
자바스크립트 - 이벤트 버블링과 버블링 막는 방법 (0) | 2014.09.07 |
자바스크립트 - 문서객체(DOM)을 사용한 움직임 구현 (0) | 2014.09.06 |