본문 바로가기

JS, TS

[실습][Javascript] 마우스 클릭 연습

반응형

출처 : 명품 웹 프로그래밍

 

마우스 클릭을 연습하는 웹 페이지를 작성해보자.
10x10의 셀을 가진 표를 만들고 랜덤하게 선택한 셀에 이미지를 출력하라.
이미지를 클릭하면 다른 셀을 랜덤하게 선택하여 이미지를 출력한다.

 


 

우선, 다음과 같이 초기 표를 구성한다

 

초기화면

 

css는 다음과 같다

.main_box {
  width: 600px;
  margin: 50px auto;
  text-align: center;
}
.random_table {
  table-layout: fixed;
  width: 100%;
  border-collapse: collapse;
}
.random_table td {
  border: 3px #000 solid;
  width: 50px;
  height: 50px;
}

 


1. 셀 안의 이미지를 <img src="">로 삽입하여 이미지가 안 보이게 한다

<td><img src="" alt=""></td>
.random_table img {
  display: none; // 안 보이게
  width: 100%; // 셀의 크기에 맞춘다
  height: 100%;
}

 

display: none;으로 이미지가 출력되지 않도록 한다

 

2. JS로 랜덤으로 사진이 출력되도록 작성한다

function RandomImage() {
  var randomNum = Math.floor(Math.random() * 100); // 0~99의 정수
  
  // documnet.images[] 컬렉션에 <img> 객체들이 모두 들어있다
  document.images[randomNum].src = "./image/snupi.jpg"; // 사진의 링크
  document.images[randomNum].alt = "snoopy";
  // document.images[randomNum].style.display = "block"; // 사진이 보이도록
}

 

Math.random() : 0 이상 1 미만의 부동소숫점 의사 난수

Math.floor() : 주어진 수 이하의 가장 큰 정수

document.images[] 컬렉션으로 웹 페이지에 있는 모든 이미지 객체를 알 수 있다

 

후에 <body>의 onload 리스너에서 RandomImage() 메소드를 호출하여

문서가 로딩되었을 때, 사진을 랜덤으로 출력한다

 

<body onload="RandomImage();">

 

RandomImage() 호출

 

3. 사진을 클릭하면 초기화시키고 다른 사진을 출력한다

document.images[randomNum].addEventListener("click",
  function () { // "익명함수"
    document.images[randomNum].src = "";
    document.images[randomNum].alt = "";
    document.images[randomNum].style.display = "none";
    RandomImage();
  });

 

addEventListener() 메소드onclick 리스너 때 실행할 익명함수를 작성한다

documnet.images[randomNum] 객체를 초기화시키고 RandomImage() 함수를 다시 호출한다

 


 

다음은 동작 영상이다

 

JS 이벤트 객체 이미지 로딩.mp4
0.12MB

반응형