3초마다 랜덤으로 나타났다 사라지는 div 효과 만들기|예제 코드

웹 페이지에서 특정 콘텐츠를 주기적으로 보여주고 싶을 때 유용한 방법이 있습니다. 간단한 HTML과 CSS, 그리고 JavaScript 타이머 함수를 활용하면 div 요소를 3초마다 랜덤으로 서서히 나타났다 사라지게 만들 수 있습니다. 실습 예제를 통해 직접 확인하며 구현 방법을 배워보세요.

기본 HTML 구조

<div class="container">
  <div class="box"><a href="#">특가 이벤트</a></div>
  <div class="box"><a href="#">타임 세일 이벤트</a></div>
  <div class="box"><a href="#">당일 발송 이벤트</a></div>
</div>
HTML

CSS: 기본 스타일 + 페이드 효과

.container {
  position: relative;
  width: 300px;
  height: 50px;
}

.box {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 1s ease;
}
.box.show {
  opacity: 1;
}
CSS

💡Tip

  • opacitytransition을 활용하면 자연스러운 페이드 인/아웃 구현 가능
  • position: absolute;로 겹쳐 놓고 하나씩만 보이도록 처리

JavaScript: 3초마다 랜덤 div 표시

const boxes = document.querySelectorAll('.box');
let currentIndex = -1;

function showRandomBox() {
  // 모든 박스 숨기기
  boxes.forEach(box => box.classList.remove('show'));

  // 랜덤 인덱스 선택 (이전과 다른 값)
  let randomIndex;
  do {
    randomIndex = Math.floor(Math.random() * boxes.length);
  } while (randomIndex === currentIndex);

  currentIndex = randomIndex;
  boxes[randomIndex].classList.add('show');
}

// 처음 실행
showRandomBox();

// 3초마다 반복
setInterval(showRandomBox, 3000);
JavaScript

예제 실행 결과

  • 페이지에 들어가면 세 개의 div 중 하나가 랜덤으로 표시됨
  • 3초마다 다른 div가 서서히 나타나고 이전 것은 사라짐
  • 이벤트 배너, 공지, 광고 배치 등 실무에도 응용 가능
  • 실행 결과 소스는 제 블로그에 맞춰서 예제 코드와 다를 수 있습니다.

마무리

  • opacity + transition → 자연스러운 애니메이션
  • setInterval() → 일정 시간 간격 반복
  • 랜덤 인덱스 + 상태 저장 → 같은 요소가 연속으로 나오지 않게 처리

Summary in English

Learn how to create a fade-in and fade-out effect where div elements randomly appear and disappear every 3 seconds using HTML, CSS, and JavaScript. This practical tutorial is perfect for event banners, rotating ads, or interactive web design projects.

관련 포스팅들

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

위로 스크롤