[HTML+CSS+JavaScript] 이미지 동적으로 변경하기 - 버튼 클릭 방법

  HTML에서 버튼을 클릭했을 때 이미지를 동적으로 변경하려면 JavaScript를 사용하여 이미지의 src 속성을 업데이트하면 됩니다. 

  
document.getElementById("img").src = "image.jpg";

 

1. 예제 html 문서 

bg01.jpg
0.29MB
bg02.jpg
0.50MB

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      .container {
        width: 500px;
        height: 500px;
        text-align: center;
      }
      #img {
        width: 300px;
        height: 300px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <img id="img" src="bg01.jpg" />
      <br />
      <button>이미지 변경하기</button>
    </div>
  </body>
</html>

>>> 결과 <<<

2. Button를 클릭하면 이미지 변경하기

  1) javascript 함수를 생성합니다. 

    이미지를 바꾸는 기능을 수행하는 함수를 생성합니다.

<script>
      // changeImg 함수는 img 요소의 이미지를 변경합니다.
      function changeImg() {
        // img 요소를 id로 가져옵니다.
        var img = document.getElementById("img");
        // img 요소의 src 속성을 "bg02.jpg"로 변경합니다.
        img.src = "bg02.jpg";
      }
</script>

 2) 이벤트 핸들러와 함수 연결

    button의 onclick 이벤트 핸들러에 changeImg() 함수를 전달해 주면 됩니다.

<button onclick="changeImg()">이미지 변경하기</button>

 

 3) 전체 소스보기 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      .container {
        width: 500px;
        height: 500px;
        text-align: center;
      }
      #img {
        width: 300px;
        height: 300px;
      }
    </style>
    <script>
      // changeImg 함수는 img 요소의 이미지를 변경합니다.
      function changeImg() {
        // img 요소를 id로 가져옵니다.
        var img = document.getElementById("img");
        // img 요소의 src 속성을 "bg02.jpg"로 변경합니다.
        img.src = "bg02.jpg";
      }
    </script>
  </head>
  <body>
    <div class="container">
      <img id="img" src="bg01.jpg" />
      <br />
      <button onclick="changeImg()">이미지 변경하기</button>
    </div>
  </body>
</html>

>>> 결과 <<<


3. Button를 클릭하면 이미지 토글하기

    버튼을 클릭할때마다 2개의 이미지가 번갈아 가면서 보이게 합니다.
    javascript 함수를 다음과 같이 변경하면 됩니다. 

    <script>
      // changeImg 함수는 img 요소의 이미지를 변경합니다.
      function changeImg() {
        // img 요소를 id로 가져옵니다.
        var img = document.getElementById("img");
        // img 요소의 src 속성이 "bg01.jpg"를 포함하고 있는지 확인합니다.
        if (img.src.includes("bg01.jpg")) {
          // "bg01.jpg"를 포함하고 있으면 "bg02.jpg"로 변경합니다.
          img.src = "bg02.jpg";
        } else {
          // "bg01.jpg"를 포함하고 있지 않으면 "bg01.jpg"로 변경합니다.
          img.src = "bg01.jpg";
        }
      }
    </script>

  전체 소스입니다. 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      .container {
        width: 500px;
        height: 500px;
        text-align: center;
      }
      #img {
        width: 300px;
        height: 300px;
      }
    </style>
    <script>
      // changeImg 함수는 img 요소의 이미지를 변경합니다.
      function changeImg() {
        // img 요소를 id로 가져옵니다.
        var img = document.getElementById("img");
        // img 요소의 src 속성이 "bg01.jpg"를 포함하고 있는지 확인합니다.
        if (img.src.includes("bg01.jpg")) {
          // "bg01.jpg"를 포함하고 있으면 "bg02.jpg"로 변경합니다.
          img.src = "bg02.jpg";
        } else {
          // "bg01.jpg"를 포함하고 있지 않으면 "bg01.jpg"로 변경합니다.
          img.src = "bg01.jpg";
        }
      }
    </script>
  </head>
  <body>
    <div class="container">
      <img id="img" src="bg01.jpg" />
      <br />
      <button onclick="changeImg()">이미지 변경하기</button>
    </div>
  </body>
</html>

4. Button를 클릭하면 여러 이미지 순환하기 

    버튼을 클릭할때마다 여러개의 이미지가 번갈아 가면서 보이게 합니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style>
      .container {
        width: 500px;
        height: 500px;
        text-align: center;
      }
      #img {
        width: 300px;
        height: 300px;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <img id="img" src="bg01.jpg" />
      <br />
      <button onclick="changeImg()">이미지 변경하기</button>
    </div>
    <script>
      // script위치를 header태그에서 body태그 맨 아래로 이동합니다.

      const img = document.getElementById("img");
      // 이미지 배열
      // 이미지를 추가하려면 배열에 이미지 파일명을 추가하면 됩니다.
      const images = ["bg01.jpg", "bg02.jpg", "bg03.jpg"];
      let currentIndex = 0;

      function changeImg() {
        // 다음 이미지로 이동, 나머지 연산자를 사용하여 순환
        // 이미지 배열의 길이를 넘어가면 0으로 초기화
        // 이렇게 하면 이미지 갯수에 상관없이 이미지가 순환하게 됩니다.
        currentIndex = (currentIndex + 1) % images.length;
        img.src = images[currentIndex];
      }
    </script>
  </body>
</html>

 

 

 

+ Recent posts