index.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405
  1. <!DOCTYPE html>
  2. <html lang="ko">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
  7. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
  8. <link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/ungveloper/web-fonts/GmarketSans/font-face.css" />
  9. <link rel="stylesheet" as="style" crossorigin href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css" />
  10. <link rel="stylesheet" href="assets/css/style.css">
  11. <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
  12. <title>스플라스 스파&워터파크</title>
  13. </head>
  14. <body>
  15. <section class="evt--section01">
  16. <div class="palm--img1"><img src="assets/img/img_1.png" alt=""></div>
  17. <div class="palm--img2"><img src="assets/img/img_2.png" alt=""></div>
  18. <div class="wave--bg"></div>
  19. <div class="section--container">
  20. <div class="section--title">
  21. <div class="logo"><img src="assets/img/logo.png"></div>
  22. <h1><img src="assets/img/font_2.png" alt="스플라스 스파&워터파크"></h1>
  23. <h2><img src="assets/img/font_3.png" alt="RENEW-ALL"></h2>
  24. <h3><img src="assets/img/font_10.png" alt="GRAND RE-OPENING"></h3>
  25. <div class="bg--wave--wrap">
  26. <div class="bg--wave">
  27. <img class="bg--wave1" src="assets/img/bg_wave_1.png" alt="">
  28. <img class="bg--wave2" src="/assets/img/bg_wave_2.png" alt="">
  29. </div>
  30. </div>
  31. <div class="bg1 floating"><img src="assets/img/img_bg_1.png" alt=""></div>
  32. <div class="bg2 floating"><img src="assets/img/img_bg_2.png" alt=""></div>
  33. <div class="bg4 floating"><img src="assets/img/img_bg_4.png" alt=""></div>
  34. <div class="bubble--bg"></div>
  35. </div>
  36. <div class="video--wrap">
  37. <video controls="true" id="tsVideo" muted type="video/mp4">
  38. <source src="assets/img/splas_video.MOV">
  39. 해당 브라우저는 video 태그를 지원하지 않습니다.
  40. </video>
  41. </video>
  42. <div class="video--btn play"></div>
  43. </div>
  44. <div class="swiper--wrap">
  45. <div class="bg1"><img src="assets/img/img_bg_7.png" alt=""></div>
  46. <div class="bg3"><img src="assets/img/img_bg_8.png" alt=""></div>
  47. <div class="swiper swiper1">
  48. <div class="swiper--tab--wrap">
  49. <button class="tab--btn active" data-index="0">아쿠아 스톰</button>
  50. <button class="tab--btn" data-index="1">블라스터 2종</button>
  51. <button class="tab--btn" data-index="2">하이드로 스핀</button>
  52. <button class="tab--btn" data-index="3">스트림 리버</button>
  53. <button class="tab--btn" data-index="4">온천 스파</button>
  54. </div>
  55. <div class="swiper-wrapper">
  56. <div class="swiper-slide">
  57. <div class="slide--wrap">
  58. <div class="slide--img">
  59. <span class="new--icon"></span>
  60. <img src="assets/img/img_3.png" alt="">
  61. </div>
  62. <div class="slide--desc">
  63. <h4>아쿠아 스톰 <span>AQUA STORM</span></h4>
  64. <p>새롭게 선보이는 패밀리형 파도풀로 8가지 패턴의 다이나믹한 파도가 몰아칩니다.<br>
  65. 최대 1.8m의 파고로 아이들과 함께 안전하면서도 신나게 즐길 수 있습니다.
  66. </p>
  67. </div>
  68. </div>
  69. </div>
  70. <div class="swiper-slide">
  71. <div class="slide--wrap">
  72. <div class="slide--img">
  73. <span class="new--icon"></span>
  74. <img src="assets/img/img_4.png" alt="">
  75. </div>
  76. <div class="slide--desc type2">
  77. <h4>토네이도 블라스터 <span>TORNADO BLASTER</span></h4>
  78. <p>롤러코스터를 타듯 198m 내내 스릴 넘치는 워터 슬라이드입니다. 마치 블랙홀로 빠져드는 듯한 스피드의 토네이도존과 컬러풀한 특수효과존이 즐거움을 더해줍니다.</p>
  79. <h4>갤럭시 블라스터 <span>GALAXY BLASTER</span></h4>
  80. <p>업앤다운을 반복하며 시원하게 스피드를 즐기는 직선 튜브와 빙글뱅글 회오리 존, 시각적인 재미를 더한 특수효과 존까지! 193m 슬라이드를 타는 내내 익사이팅한 매력에 기다리는 시간도 즐거워져요.</p>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="swiper-slide">
  85. <div class="slide--wrap">
  86. <div class="slide--img">
  87. <span class="new--icon"></span>
  88. <img src="assets/img/img_5.png" alt="">
  89. </div>
  90. <div class="slide--desc">
  91. <h4>하이드로 스핀 <span>HYDRO SPIN</span></h4>
  92. <p>짧지만 강한 재미를 느낄 수 있는 신규 어트랙션. 튜브를 타고 최대 속도 45km/hr로 <br>빠르게 상승과 하강을 반복해 지루할 틈 없는 U형 무동력 슬라이드입니다.</p>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="swiper-slide">
  97. <div class="slide--wrap">
  98. <div class="slide--img">
  99. <img src="assets/img/img_6.png" alt="">
  100. </div>
  101. <div class="slide--desc">
  102. <h4>스트림 리버 <span>STREAM RIVER</span></h4>
  103. <p>스플라스 워터파크에서 단연 최고의 인기를 자랑하는 토렌트 리버가 업그레이드 되어 돌아왔습니다. <br>동종 시설 중 가장 액티브한 급류 파도풀로, 최대 파고 2.5M 로 리뉴얼되어 더욱 강력해진 짜릿함을 선사합니다.</p>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="swiper-slide">
  108. <div class="slide--wrap">
  109. <div class="slide--img">
  110. <img src="assets/img/img_7.png" alt="">
  111. </div>
  112. <div class="slide--desc">
  113. <h4>실내 · 야외 온천 스파</h4>
  114. <p>조용하고 편안하게 즐기는 실내 스파, 자연의 소리와 은은한 허브향이 함께하는 야외 스파, <br>계절과 테마 별 이색 컨텐츠를 담은 이벤트 스파까지. 17개의 온천 스파를 취향 따라 즐겨보세요.</p>
  115. </div>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="swiper-pagination"></div>
  121. <div class="swiper-button-next"></div>
  122. <div class="swiper-button-prev"></div>
  123. </div>
  124. </div>
  125. </section>
  126. <section class="evt--section02-1">
  127. <div class="cloud--img1"><img src="assets/img/img_9.png" alt=""></div>
  128. <div class="cloud--img2"><img src="assets/img/img_8.png" alt=""></div>
  129. <div class="section--container">
  130. <div class="evt--1">
  131. <span class="evt--circle">EVENT.01</span>
  132. <h3>내 취향 알고 즐기자!</h3>
  133. <h2><img src="assets/img/font_4.png" alt="물놀이 성향 테스트"></h2>
  134. <p class="evt--box"><img src="assets/img/img_16.png" alt="나에게 맞는 스타일은?"></p>
  135. <a href="#"><img src="assets/img/img_14.png" alt=""></a>
  136. <div class="bg1"><img src="assets/img/img_10.png" alt=""></div>
  137. <div class="bg2"><img src="assets/img/img_11.png" alt=""></div>
  138. <div class="bg3"><img src="assets/img/img_12.png" alt=""></div>
  139. <div class="bg4"><img src="assets/img/img_13.png" alt=""></div>
  140. </div>
  141. </div>
  142. </section>
  143. <section class="evt--section02-2">
  144. <!-- <div class="bg1"><img src="assets/img/bg_5.png" alt=""></div>
  145. <div class="bg2"><img src="assets/img/bg_6.png" alt=""></div> -->
  146. <div class="section--container">
  147. <div class="evt--2">
  148. <span class="evt--circle">EVENT.02</span>
  149. <h3>인스타그램 댓글 이벤트</h3>
  150. <h2><img src="assets/img/font_5.png" alt="이모지 퀴즈"></h2>
  151. <div class="evt--box2"><img src="assets/img/font_6.png" alt=""></div>
  152. <ul class="evt--box">
  153. <li><span class="circle">기 간</span>2025.05.30 - 2025.06.08</li>
  154. <li><span class="circle">내 용</span>이모지 힌트로 어트랙션 이름 맞추기</li>
  155. <li><span class="circle">발 표</span>2025.06.13 / 개별 DM 안내</li>
  156. <li><span class="circle">경 품</span>스파이용권 (1매) / 20명</li>
  157. </ul>
  158. <a href="#" class="evt--btn">이벤트 참여하기</a>
  159. <div class="bg1"><img src="" alt=""></div>
  160. <div class="bg2"><img src="" alt=""></div>
  161. <div class="bg3"><img src="" alt=""></div>
  162. <div class="bg4"><img src="" alt=""></div>
  163. <div class="bob--wrap01">
  164. <div class="bob01"></div>
  165. </div>
  166. <div class="bob--wrap02">
  167. <div class="bob02"></div>
  168. </div>
  169. <div class="bob--wrap03">
  170. <div class="bob03"></div>
  171. </div>
  172. <div class="bob--wrap04">
  173. <div class="bob04"></div>
  174. </div>
  175. <div class="bob--wrap05">
  176. <div class="bob05"></div>
  177. </div>
  178. <div class="bob--wrap06">
  179. <div class="bob06"></div>
  180. </div>
  181. <div class="bob--wrap07">
  182. <div class="bob07"></div>
  183. </div>
  184. <div class="bob--wrap08">
  185. <div class="bob08"></div>
  186. </div>
  187. <div class="bob--wrap09">
  188. <div class="bob09"></div>
  189. </div>
  190. <div class="tok01"></div>
  191. <div class="tok02"></div>
  192. <div class="tok03"></div>
  193. <div class="tok04"></div>
  194. <div class="tok05"></div>
  195. </div>
  196. </div>
  197. </section>
  198. <section class="evt--section03">
  199. <div class="section--container">
  200. <div class="section--title">
  201. <h3><img src="assets/img/font_11.png" alt="6월 5일 단 한번의 기회!"></h3>
  202. <h2><img src="assets/img/font_7.png" alt="얼리버드 프로모션"></h2>
  203. <div class="circle"><img src="assets/img/font_12.png" alt=""></div>
  204. </div>
  205. <div class="promotion--wrap">
  206. <div class="promotion">
  207. <h4>혜택 01</h4>
  208. <p>입장권</p>
  209. <h5>50<span>%</span><br>할인</h5>
  210. </div>
  211. <div class="promotion">
  212. <h4>혜택 01</h4>
  213. <p>1시간</p>
  214. <h5>사전<br>입장</h5>
  215. </div>
  216. </div>
  217. <div class="promotion--detail--wrap">
  218. <div class="detail">
  219. <div class="detail--l">
  220. <span>혜택 01</span>
  221. <h5>새로워진 스플라스 워터파크,<br>
  222. <span>반값으로</span> 즐겨요!</h5>
  223. <ul>
  224. <li>사용 기간 : 2025.7.1(화) ~ 8.31(일)</li>
  225. <li>구매 수량 : 1인 최대 2매</li>
  226. </ul>
  227. </div>
  228. <div class="detail--r">
  229. <span>한정<br>수량</span>
  230. <p>성인 · 소인 통합권</p>
  231. <div class="before--price">70,000원</div>
  232. <div class="after--price">35,000원</div>
  233. </div>
  234. </div>
  235. <div class="detail">
  236. <div class="detail--l">
  237. <span>혜택 02</span>
  238. <h5><span>1시간 먼저 입장</span>해 여유롭게!<br>
  239. 오픈 런 하지마세요.</h5>
  240. <ul>
  241. <li>사전 입장 가능 시간 : 오전 8:00 ~ 8:59</li>
  242. <li>얼리버드 티켓 사용 당일 한정</li>
  243. </ul>
  244. </div>
  245. <div class="detail--r">
  246. <span>사전<br>입장</span>
  247. <p>정규 오픈 시간</p>
  248. <div class="before--price">오전 9:00</div>
  249. <div class="after--price">오전 8:00</div>
  250. </div>
  251. </div>
  252. <ul class="detail--plus">
  253. <li>
  254. 사전 입장 시간이 지나면 혜택이 자동 소멸됩니다. (9:00부터 일반 줄 대기)
  255. </li>
  256. <li>
  257. 평소 혼잡도가 높은 인기 <strong>어트랙션 3종</strong>에 한해 이용 가능합니다.<br>
  258. - 토네이도 블라스터, 갤럭시 블라스터, 하이드로 스핀
  259. </li>
  260. </ul>
  261. </div>
  262. <div class="count--wrap">
  263. <div class="count--txt">
  264. <p>6월 5일 (목)</p>
  265. <div class="img--wrap">
  266. <div class="wch--l"></div>
  267. <img src="assets/img/img_15.png" alt="시계">
  268. <div class="wch--r"></div>
  269. </div>
  270. <p>10시에 만나요 !</p>
  271. </div>
  272. <div class="count--num">
  273. <div class="bbl--eft03"></div>
  274. <div class="bbl--eft02"></div>
  275. <div class="bbl--eft01"></div>
  276. <div class="hours"><span>0</span><span>1</span></div>
  277. <div class="minutes"><span>0</span><span>0</span></div>
  278. <div class="seconds"><span>0</span><span>0</span></div>
  279. <div class="bbl--eft06"></div>
  280. <div class="bbl--eft05"></div>
  281. <div class="bbl--eft04"></div>
  282. </div>
  283. <a href="#" class="evt--btn">얼리버드 티켓 구매</a>
  284. </div>
  285. </div>
  286. </section>
  287. <script>
  288. const video = document.getElementById('tsVideo');
  289. const wrapper = document.querySelector('.video--wrap');
  290. const playBtn = document.querySelector('.video--btn');
  291. const observer = new IntersectionObserver(
  292. (entries) => {
  293. entries.forEach(entry => {
  294. if (entry.isIntersecting) {
  295. video.play();
  296. } else {
  297. video.pause();
  298. }
  299. });
  300. },
  301. {
  302. threshold: 0.5 // 50% 이상 보여야 재생
  303. }
  304. );
  305. observer.observe(wrapper);
  306. // 버튼 클릭 시 재생 + 클래스 제거
  307. playBtn.addEventListener('click', () => {
  308. if (video.paused) {
  309. video.play();
  310. } else {
  311. video.pause();
  312. }
  313. });
  314. video.addEventListener('play', () => {
  315. playBtn.classList.remove('play');
  316. });
  317. // 비디오 일시 정지되면 클래스 추가
  318. video.addEventListener('pause', () => {
  319. playBtn.classList.add('play');
  320. });
  321. var swiper = new Swiper(".swiper1", {
  322. pagination: {
  323. el: ".swiper-pagination",
  324. clickable: true,
  325. },
  326. navigation: {
  327. nextEl: ".swiper-button-next",
  328. prevEl: ".swiper-button-prev",
  329. },
  330. });
  331. const tabButtons = document.querySelectorAll('.tab--btn');
  332. tabButtons.forEach(btn => {
  333. btn.addEventListener('click', () => {
  334. const index = parseInt(btn.dataset.index);
  335. swiper.slideTo(index);
  336. });
  337. });
  338. swiper.on('slideChange', () => {
  339. tabButtons.forEach(btn => btn.classList.remove('active'));
  340. tabButtons[swiper.activeIndex].classList.add('active');
  341. });
  342. const deadline = new Date('2025-06-05T10:00:00');
  343. function padDigits(num) {
  344. return String(num).padStart(2, '0').split('');
  345. }
  346. function updateCountdown() {
  347. const now = new Date();
  348. const diff = deadline - now;
  349. const hourEl = document.querySelector('.hours').children; // ← 여기에 시
  350. const minEl = document.querySelector('.minutes').children; // ← 여기에 분
  351. const secEl = document.querySelector('.seconds').children; // ← 여기에 초
  352. if (diff <= 0) {
  353. hourEl[0].textContent = '0';
  354. hourEl[1].textContent = '0';
  355. minEl[0].textContent = '0';
  356. minEl[1].textContent = '0';
  357. secEl[0].textContent = '0';
  358. secEl[1].textContent = '0';
  359. clearInterval(timer);
  360. return;
  361. }
  362. const hours = Math.floor((diff / (1000 * 60 * 60)) % 100); // 2자리 확보
  363. const minutes = Math.floor((diff / (1000 * 60)) % 60);
  364. const seconds = Math.floor((diff / 1000) % 60);
  365. const [h1, h2] = padDigits(hours);
  366. const [m1, m2] = padDigits(minutes);
  367. const [s1, s2] = padDigits(seconds);
  368. animateIfChanged(hourEl[0], h1);
  369. animateIfChanged(hourEl[1], h2);
  370. animateIfChanged(minEl[0], m1);
  371. animateIfChanged(minEl[1], m2);
  372. animateIfChanged(secEl[0], s1);
  373. animateIfChanged(secEl[1], s2);
  374. }
  375. updateCountdown();
  376. const timer = setInterval(updateCountdown, 1000); // 1초마다 갱신
  377. function animateIfChanged(el, newVal) {
  378. if (el.textContent !== newVal) {
  379. el.textContent = newVal;
  380. el.classList.add('flip');
  381. setTimeout(() => el.classList.remove('flip'), 400); // 애니메이션 끝나면 제거
  382. }
  383. }
  384. </script>
  385. </body>
  386. </html>