[JavaScript_JQuery] 2021.01.25. DAY_63 DOM_Event 이벤트(마우스,키보드,기본)

2021. 1. 25. 15:08Web_Front-end/JavaScript

 

◎ 마우스 이벤트

※ mouse 이벤트의 속성들을 확인해볼 수 있는 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
div{
	width: 600px;
	height: 400px;
	border: 1px solid pink;
}
</style>
<script type="text/javascript">
	window.onload = function() {
		document.body.onmouseup = function(e) {
			let r = '';
			for(i in e){
				r += `속성명: ${i} / 속성값: ${e[i]} <br>`;
			}
			document.querySelector("div").innerHTML = r;
			
		}
	}
</script>
</head>
<body>
<div></div>
</body>
</html>

 

 


※ 마우스를 클릭한 곳으로 이미지를 이동하기

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>getX, getY : 클릭한 위치에 이미지를 띄우기</title>
<style type="text/css">
#man{
	position: absolute; 
	left: 10px;
	top: 500px;
	}
#main{
	width: 800px;
	height: 600px
}
</style>
<script type="text/javascript">
	window.onload = function() {
		document.body.onmouseup = function(e) {//mouse이벤트가 e에 담긴다
			//e.x : 마우스이벤트의 좌측좌표 즉, 클릭한 위치의 왼쪽 좌표
			let x = e.x;
			//e.y : 마우스이벤트의 우측좌표 즉, 클릭한 위치의 오른쪽 좌표
			let y = e.y;
			//alert(`x: ${x}, y: ${y}`); //좌표를 실시간으로 확인해보기
			let man = document.querySelector("#man");//man이라는 id를 가진 이미지를 담는다
			
			//클릭하는 이벤트가 발생할때마다 변경할 위치
			man.style.left = `${x}px`;//man의 left좌표
			man.style.top = `${y}px`;//man의 top좌표
			
		}
	}
</script>
</head>
<body>
<div id="main">
<img id="man" src="../images/man.png">
</div>
</body>
</html>

 


◎ 키보드 이벤트

※ key event의 속성들을 찾아볼 수 있는 코드

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>getX, getY : 클릭한 위치에 이미지를 띄우기</title>
<script type="text/javascript">
	window.onload = function() {
		
		document.body.onkeyup = function(ke) {
			let r = "";
			for(i in ke){
				r += `속성명: ${i} / 속성값: ${ke[i]}<br>`;
			}
			document.querySelector("#main").innerHTML = r;
		}
	}
</script>
</head>
<body>
<div id="main">
</div>
</body>
</html>

 


※ 키보드 이벤트 사용 : 키를 누를때마다 이미지를 움직이게 만든다

  • 아무 키나 누르면 기본위치에서 우측으로 10px씩 이미지가 움직이게 만들어보자
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JQuery : 키보드이벤트 . 이미지 움직이기</title>
<style type="text/css">
#man{
	position: absolute; 
	left: 10px;
	top: 500px;
	}
#main{
	width: 800px;
	height: 600px
}
</style>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
	$(function() {
		$("body").keyup(function(e) {
			//keycode : 37, 38, 39, 40
			let keycode = e.keyCode;
			
			//left의 값을 읽어온다 (매개변수에 값까지주면, 값으로 설정하는 것)			
			//css("left", "100px") : left를 100으로 설정
			//css("left") : 현재 left정보를 읽어온다
			//$("#man").css("left"); // ==>현재 man의 left 위치
			let x = parseInt($("#man").css("left")); //parseInt의 값에 첫시작이 숫자이면, 숫자만으로 연산가능한 특징을 가지고
			//px을 떼어서 사용할 수 있다
			x += 10;		
			$("#man").css("left", `${x}px`); //css에 값을 넣으면, 설정
		})

	})
	
</script>
</head>
<body>
<div id="main">
<img id="man" src="../images/man.png">
</div>
</body>
</html>
  • 앞으로 추가할 내용
    • 방향키에 맞게 움직이는 이미지

이곳에 추가내용 추가하기


◎ 기본이벤트

) a 태그를 클릭하면 href 속성에 입력한 위치로 이동

  • 기본 이벤트를 막아야 할 경우
    • ) 회원가입에서 <확인>버튼을 누르면,
    • 우선 사용자가 정확하게 이름과 주민등록번호를 입력했는지 확인하고 이동해야 함
  • 이러한 경우에 사용하는 기본이벤트를 사용해보자

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>태그에 내장된 이벤트를 지우는 기본이벤트</title>
<script type="text/javascript">
	window.onload = function() {
		document.querySelector("#button").onclick = function() {
			return false;
		}
	}
</script>
</head>
<body>
	<a id="button" href="http://daum.net">다음으로 이동</a>
</body>
</html>

  • 원래라면 a태그의 href주소로 이동해야하지만, 
  • 기본이벤트 처리를 통해, 아무 이동이 일어나지 않는것을 알 수 있다