본문 바로가기
프로그래밍/Bootstrap

10. 사용자 경험을 높이는 Bootstrap 모달과 팝업 창 만들기

by 완소루피 2024. 11. 12.
728x90
반응형

안녕하세요! 오늘은 웹사이트에서 중요한 메시지나 정보를 전달할 때 유용하게 사용할 수 있는 Bootstrap의 모달(팝업) 창에 대해 알아볼게요. 모달 창은 사용자 주의를 집중시키고, 필요한 정보를 빠르게 전달하기 위해 많이 사용됩니다. 이 글에서는 모달 창의 기본 구성, 팝업 이벤트 처리 방법, 그리고 모달 활용 팁을 다루어 보겠습니다.

1. 모달 창 기본 구성

Bootstrap의 모달 창은 modal 클래스를 사용하여 손쉽게 구성할 수 있어요. 모달 창은 modal-dialog, modal-content, modal-header, modal-body, modal-footer 등의 구성 요소로 이루어져 있으며, 각각의 요소는 모달의 제목, 내용, 버튼 등을 담는 역할을 합니다.

 

<!-- 모달 버튼 -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
  모달 열기
</button>

<!-- 모달 창 -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">모달 제목</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        여기에 모달 내용을 입력하세요.
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">닫기</button>
        <button type="button" class="btn btn-primary">저장하기</button>
      </div>
    </div>
  </div>
</div>

 

구성 요소 설명:

  • 모달 버튼: data-toggle="modal"과 data-target="#exampleModal" 속성을 사용해 모달 창을 열 수 있는 버튼을 만듭니다. data-target에는 모달의 id를 지정해 해당 모달이 열리도록 합니다.
  • modal: 모달의 기본 클래스이며, fade 클래스는 페이드 효과로 모달이 열리도록 합니다.
  • modal-dialog: 모달 창의 크기와 위치를 지정합니다.
  • modal-content: 모달의 전체적인 내용을 담는 컨테이너입니다.
  • modal-header: 모달의 상단 부분으로, 제목과 닫기 버튼을 포함합니다.
  • modal-body: 모달의 본문 내용이 들어가는 부분입니다.
  • modal-footer: 모달 하단에 버튼 등을 배치할 수 있는 영역입니다.

2. 팝업 이벤트 처리

모달 창은 다양한 이벤트를 처리할 수 있습니다. 예를 들어, 모달이 열리거나 닫힐 때 특정 작업을 수행할 수 있습니다. Bootstrap은 jQuery 기반의 이벤트 메서드를 사용해 모달에 대한 여러 이벤트를 제공합니다.

 

(1) 모달이 열리기 전 이벤트 (show.bs.modal)

$('#exampleModal').on('show.bs.modal', function (e) {
  console.log("모달이 열리기 직전입니다!");
});

 

(2) 모달이 완전히 열렸을 때 이벤트 (shown.bs.modal)

$('#exampleModal').on('shown.bs.modal', function (e) {
  console.log("모달이 열렸습니다!");
});

 

(3) 모달이 닫히기 전 이벤트 (hide.bs.modal)

$('#exampleModal').on('hide.bs.modal', function (e) {
  console.log("모달이 닫히기 직전입니다!");
});

 

(4) 모달이 완전히 닫혔을 때 이벤트 (hidden.bs.modal)

$('#exampleModal').on('hidden.bs.modal', function (e) {
  console.log("모달이 닫혔습니다!");
});

 

이 이벤트들은 모달이 열리거나 닫힐 때 특정 작업을 수행하는 데 유용하게 사용할 수 있습니다. 예를 들어, 모달이 닫힐 때 입력 필드를 초기화하거나, 특정 데이터를 저장할 때 사용할 수 있어요.

3. 모달 활용 팁

모달 창을 더 효과적으로 활용하기 위해 다양한 설정과 팁을 사용해 보세요.

(1) 크기 조정

모달의 크기는 modal-lg와 modal-sm 클래스를 사용해 조절할 수 있습니다.

<div class="modal-dialog modal-lg"> <!-- 큰 모달 -->
  ...
</div>

<div class="modal-dialog modal-sm"> <!-- 작은 모달 -->
  ...
</div>

 

(2) 스크롤 가능한 모달

내용이 길어질 경우 modal-dialog-scrollable 클래스를 사용해 모달에 스크롤을 추가할 수 있어요.

 

<div class="modal-dialog modal-dialog-scrollable">
  ...
</div>

 

(3) 중앙 정렬 모달

modal-dialog-centered 클래스를 사용하면 모달을 화면 중앙에 배치할 수 있습니다.

<div class="modal-dialog modal-dialog-centered">
  ...
</div>

 

(4) 자동으로 모달 열기 및 닫기

모달은 JavaScript 코드로도 제어할 수 있습니다.

// 모달 열기
$('#exampleModal').modal('show');

// 모달 닫기
$('#exampleModal').modal('hide');

 

 

JavaScript로 모달을 제어하면 특정 조건에 따라 모달을 자동으로 열거나 닫는 기능을 추가할 수 있어요.

요약 및 다음 단계

Bootstrap의 모달 창을 사용하면 사용자가 특정 작업에 집중할 수 있게 하고, 중요한 메시지를 쉽게 전달할 수 있습니다. modal 클래스를 사용해 모달을 구성하고, 이벤트를 활용해 모달이 열리고 닫힐 때 특정 작업을 처리할 수 있어요. 다음 단계로는 실제 프로젝트에서 모달을 적용해 사용자 경험을 개선해 보세요. 다양한 화면 크기와 상황에서의 활용을 테스트해 보는 것도 좋습니다.

728x90
반응형