마우스 오버시 이미지가 계속 커지게 하는 방법
마우스 오버시 이미지가 계속 커지게 하는 방법
이미지에 마우스를 올리면 이미지가 계속 커지게 하기 위해서는 자바 스크립트의 타이밍 이벤트 메소드를 사용한다. 타이밍 이벤트 메소드는 지정한 시간이 되면 반복적으로 함수를 호출할 수 있다. 타이밍 이벤트 메소드의 종류는 다음과 같다.
setTimeout("자바스크립트 함수", 밀리초)
매개변수로 지정한 밀리초후에 매개변수로 지정한 함수를 실행시키는 함수이다. 밀리초는 1000값이 1초를 말한다.
clearTimeout( setTimeout 변수 )
만약에 셋타임아웃 함수로 무한 루프를 돌릴 경우 clearTimeout() 함수를 호출하면 무한 루프가 종료된다.
타이밍 이벤트로 무한 카운터를 만들어 본 코드
<script type="tex/javascript">
var count = 0;
var timer;
function counter() {
document.getElementById("counter").value = count;
count = count + 1;
timer = setTimeout( "counter()", 1000 );
}
</script>
<input type="button" value="Start count" onclick="counter()"/>
<input type="text" id="counter"/>
counter 텍스트 입력폼에 계속 1씩 증가하는 것을 볼 수 있다. 이 카운터를 종료하기 위해서는 브라우저 창을 닫거나 타이머 이벤트를 종료해야 하는 코드를 작성해야 한다.
자바스크립트의 타이밍 이벤트를 사용하여 이미지를 계속 키우는 코드
<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script type="text/javascript">
<!--
var i = 0;
var w = 100;
var h = 180;
function moveover() {
document.getElementById('image').width=w;
document.getElementById('image').height=h;
w=w+1;
h=h+1;
timer = setTimeout("moveover()",100);
}
function moveback() {
document.getElementById('image').width="100";
document.getElementById('image').height="180";
w=100;
h=180;
clearTimeout(timer);
}
//-->
</script>
</head>
<body>
<img id="image" src="test.gif" onmouseover="moveover()" onmouseout="moveback()"/>
</body>
</html>
[참고] http://www.w3schools.com/js/js_timing.asp