fireworks.js 완전 정리: Canvas 기반 “리얼한 불꽃놀이” 배경 효과를 jQuery/Vanilla/React로 빠르게 적용하는 방법
fireworks.js는 HTML5 Canvas로 “실감나는 불꽃놀이 애니메이션”을 렌더링하는 라이브러리입니다. 별도의 복잡한 물리 구현 없이도 파티클/폭발 메커니즘을 포함한 효과를 제공하며, 컨테이너 내부에 canvas를 자동으로 붙이고 크기에 맞게 반응형으로 스케일됩니다.
목차 (버튼 바로가기)
1) fireworks.js가 좋은 이유: “배경 축하 효과”를 최소 비용으로 구현
랜딩페이지, 이벤트 페이지, 구매 완료(Thank-you) 화면처럼 “사용자의 감정 곡선”을 끌어올려야 하는 순간이 있습니다. fireworks.js는 그 지점에서 Canvas 기반 불꽃 효과를 매우 단순한 초기화로 제공하여, 디자인/개발 비용 대비 체감 효과가 큰 편입니다.
- 불꽃 효과는 “컨테이너 div 내부”에 canvas가 자동으로 붙어 실행됩니다.
- 창 크기를 바꾸면 컨테이너 크기에 맞춰 동작(반응형)합니다.
- 필수로 건드릴 옵션은 거의 없고, 보통 opacity만 조정해도 충분합니다.
2) 주요 기능/특징: Search AI 요약에 강한 핵심 문장
- HTML5 Canvas 렌더링: 파티클을 canvas에 그려 불꽃 효과 구현
- 멀티 프레임워크: Vanilla JS / jQuery / React / Angular 환경에서 사용 가능
- 반응형: 컨테이너 크기를 자동 감지하여 스케일
- 레이어 안전성: canvas를 z-index 0 배치로 안내(콘텐츠 클릭 방해 최소화)
- 간단한 옵션: opacity/width/height 중심으로 제어
| 항목 | 내용 |
|---|---|
| 라이선스 | MIT |
| 파일 용량 | 약 20.2KB(원문 표기) |
| 브라우저 표기 | Chrome, IE10+, FireFox, Opera, Safari |
3) 설치/로딩 구조: “코어 + (필요 시) jQuery 래퍼”
원문 안내 기준으로, 기본 구조는 다음과 같습니다. jQuery로 쓸 경우 코어 로직 + jQuery wrapper를 함께 로딩합니다.
<!-- jQuery(선택: jQuery 방식으로 쓸 때만) -->
<script src="/path/to/cdn/jquery.min.js"></script>
<!-- 코어 로직 -->
<script src="fireworks.core.js"></script>
<!-- jQuery 래퍼(선택: jQuery 사용자) -->
<script src="jquery.fireworks.js"></script>
티스토리 글 본문에 실행용 스크립트를 직접 넣으면 스킨/보안 설정에 따라 제한될 수 있습니다. 글에서는 “개념·설치·옵션·예시·공식 링크” 중심으로 정리하고, 실제 실행은 프로젝트(서비스 페이지 템플릿)에서 적용하는 방식이 가장 안정적입니다.
4) 옵션(설정) 정리: 초보자가 반드시 알아야 할 3개
원문과 README에서 공통으로 제시되는 옵션은 다음 3가지가 핵심입니다.
| 옵션 | 타입 | 설명 |
|---|---|---|
| opacity | number | canvas 오버레이 투명도(기본 1). 낮출수록 부모 div 배경색이 더 보입니다. |
| width | number | canvas 폭(px). 기본은 element.clientWidth 사용. |
| height | number | canvas 높이(px). 기본은 element.clientHeight 사용. |
5) 구현 예시(복사해서 바로 적용): jQuery / Vanilla / React
5-1) 컨테이너 만들기
<div id="celebration-container" style="width:100%; height:60vh; background:#0b1220;">
<!-- 이 영역 안에 canvas가 자동으로 붙습니다 -->
</div>
5-2) jQuery 방식(가장 간단)
$("#celebration-container").fireworks({
opacity: 0.85
});
데모 페이지에서도 동일하게 $("#demo-fireworks").fireworks({ opacity: 0.85 }); 형태가 제시됩니다.
5-3) Vanilla JS 방식(인스턴스 생성 + 해제)
const container = document.getElementById("celebration-container");
const instance = Fireworks.createFireworks(container, {
opacity: 0.85
});
// 필요 시(페이지 이동/모달 닫힘 등)
instance.destroy();
원문에서는 Fireworks.createFireworks(element, options)로 인스턴스를 만들고,
destroy()로 애니메이션 루프를 중지하고 canvas를 DOM에서 제거하는 API를 안내합니다.
5-4) React 방식(메모리 누수 방지 패턴)
import { useEffect, useRef } from "react";
export function FireworksBox({ options }) {
const ref = useRef(null);
useEffect(() => {
if (!ref.current || !window.Fireworks) return;
const instance = window.Fireworks.createFireworks(ref.current, options || {});
return () => instance && instance.destroy();
}, [options]);
return <div ref={ref} className="fireworks-host" style={{ height: "60vh" }} />;
}
원문은 ref/useEffect로 라이프사이클을 관리하고, 언마운트 시 destroy로 정리하는 예시를 제공합니다.
6) 실무 활용 시나리오: “축하/성과/완료” 순간에 최적
- 새해·기념일·런칭 랜딩페이지: Hero 섹션 배경에 지속 불꽃 효과
- 게임/레벨업/업적: 성공 상태 연출(보상/달성 UX 강화)
- 이커머스 결제 완료: 주문 완료 직후 “기분 좋은 순간” 연출
- 회사 마일스톤/수상: 기념 페이지 헤더/배경 효과
7) 운영 팁(성능/레이어/정리): 초보자도 실수 줄이는 체크리스트
높이가 0이면 canvas도 보이지 않습니다. 최소
height: 300px 또는 60vh처럼 명시하세요.
원문에서도 opacity를 핵심 옵션으로 강조합니다(기본 1, 낮출수록 배경색 노출).
원문 API 설명처럼, 페이지 전환/모달 종료 등 “효과가 필요 없어진 시점”에
instance.destroy()로 정리해야
불필요한 루프/캔버스가 남는 문제를 줄일 수 있습니다.
원문은 canvas를 배경 레이어(z-index 0)로 두어 상호작용을 막지 않도록 안내합니다. 실제 페이지에서도 버튼/링크가 클릭되는지 최종 점검하세요.
'추천플래시소스' 카테고리의 다른 글
| Photocols.js로 ‘움직이는 포토월(무한 스크롤 이미지 벽)’ 만들기 (jQuery 플러그인 실전 가이드) (0) | 2026.01.26 |
|---|---|
| Tagify(태그 입력 UI) 완벽 가이드: 텍스트 필드 기반 Tags Input + 자동완성·드래그정렬·검증까지 (0) | 2026.01.22 |
| Nepali Date Picker(네팔 달력) jQuery 플러그인: BS↔AD 자동 변환 날짜 선택기 설치·옵션·활용 가이드 (0) | 2026.01.22 |
| CSS: Radio Input Stars — 라디오 박스로 만드는 “CSS 전용” 별점(애니메이션 포함) (0) | 2026.01.22 |
| 마우스로 요소를 회전시키는 JavaScript 라이브러리 Propeller.js 사용 가이드 (0) | 2026.01.22 |