723 lines
31 KiB
HTML
723 lines
31 KiB
HTML
<!doctype html>
|
|
<html lang="zh-TW">
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>水晶男孩推廣部|水晶熱舞社</title>
|
|
<link rel="stylesheet" href="../assets/css/style.css">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
<link rel="stylesheet" href="../assets/css/tablet.css">
|
|
<style>
|
|
/* Bootstrap Reboot 還原 */
|
|
body.crystal-dance-page {
|
|
background-color: var(--color-bg);
|
|
color: var(--color-text);
|
|
font-family: 'Noto Sans TC', 'Microsoft JhengHei', system-ui, sans-serif;
|
|
line-height: 1.6;
|
|
}
|
|
|
|
h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, blockquote, hr {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
a {
|
|
color: var(--color-text);
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* 標題與內文:拉開垂直節奏,避免擠在一起 */
|
|
body.crystal-dance-page .section-title {
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
body.crystal-dance-page .section-title::after {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
body.crystal-dance-page .section-body {
|
|
max-width: 760px;
|
|
margin: 0 auto 2.5rem;
|
|
}
|
|
|
|
body.crystal-dance-page .section-body p,
|
|
body.crystal-dance-page .form-lead {
|
|
color: var(--color-text-muted);
|
|
line-height: 1.9;
|
|
text-align: left;
|
|
margin-bottom: 1.15rem;
|
|
}
|
|
|
|
body.crystal-dance-page .section-body p:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
body.crystal-dance-page .form-lead {
|
|
max-width: 760px;
|
|
margin: 0 auto 2.5rem;
|
|
}
|
|
|
|
/* ① 認識區 */
|
|
body.crystal-dance-page #about {
|
|
text-align: center;
|
|
padding-bottom: 0;
|
|
overflow: hidden;
|
|
}
|
|
|
|
body.crystal-dance-page .category-tag {
|
|
display: inline-block;
|
|
background: var(--color-brand-light);
|
|
color: var(--color-brand-dark);
|
|
padding: 0.35rem 1.15rem;
|
|
border-radius: 999px;
|
|
font-size: 0.78rem;
|
|
font-weight: 700;
|
|
letter-spacing: 1px;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
body.crystal-dance-page .hero-banner {
|
|
display: block;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
aspect-ratio: 21 / 9;
|
|
object-fit: cover;
|
|
border-radius: 12px;
|
|
border: 1px solid rgba(255, 204, 0, 0.22);
|
|
margin: 0 auto 2.25rem;
|
|
}
|
|
|
|
body.crystal-dance-page #about .section-title {
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
body.crystal-dance-page .keyword-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
gap: 0.6rem;
|
|
margin: 2.25rem auto 2.5rem;
|
|
max-width: 640px;
|
|
}
|
|
|
|
body.crystal-dance-page .keyword-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.25rem;
|
|
background: var(--color-brand-light);
|
|
color: var(--color-brand-dark);
|
|
font-size: 0.82rem;
|
|
font-weight: 700;
|
|
padding: 0.4rem 0.9rem;
|
|
border-radius: 999px;
|
|
border: 1px solid rgba(255, 204, 0, 0.35);
|
|
}
|
|
|
|
/* 頁內導覽:深色底條(對照參考圖) */
|
|
body.crystal-dance-page .page-nav-bar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
align-items: center;
|
|
gap: 0.25rem 0;
|
|
margin: 0 -36px;
|
|
padding: 0.95rem 1.5rem;
|
|
background: var(--color-bg-raised);
|
|
border-top: 1px solid rgba(255, 204, 0, 0.2);
|
|
}
|
|
|
|
body.crystal-dance-page .page-nav-bar a {
|
|
color: var(--color-brand);
|
|
font-size: 0.82rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.5px;
|
|
padding: 0.2rem 0.85rem;
|
|
border-right: 1px solid rgba(255, 204, 0, 0.25);
|
|
transition: color 0.2s ease;
|
|
}
|
|
|
|
body.crystal-dance-page .page-nav-bar a:last-child {
|
|
border-right: none;
|
|
}
|
|
|
|
body.crystal-dance-page .page-nav-bar a:hover {
|
|
color: var(--color-text-inverse);
|
|
}
|
|
|
|
/* ② 影片區:主影片與下方三欄同寬對齊 */
|
|
body.crystal-dance-page .video-grid {
|
|
width: 100%;
|
|
}
|
|
|
|
body.crystal-dance-page .sub-section-title {
|
|
margin-top: 3rem;
|
|
margin-bottom: 1.25rem;
|
|
font-weight: 800;
|
|
color: var(--color-brand-dark);
|
|
font-size: 1.05rem;
|
|
text-align: center;
|
|
letter-spacing: 0.08em;
|
|
}
|
|
|
|
body.crystal-dance-page .video-label {
|
|
display: block;
|
|
color: var(--color-brand-dark);
|
|
font-weight: 800;
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
body.crystal-dance-page .video-feature {
|
|
width: 100%;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
body.crystal-dance-page .video-feature .video-label {
|
|
text-align: left;
|
|
}
|
|
|
|
body.crystal-dance-page .video-feature .ratio,
|
|
body.crystal-dance-page .video-thumb .ratio {
|
|
border-radius: 10px;
|
|
overflow: hidden;
|
|
border: 1px solid rgba(255, 204, 0, 0.18);
|
|
}
|
|
|
|
body.crystal-dance-page .video-thumb {
|
|
height: 100%;
|
|
}
|
|
|
|
body.crystal-dance-page .video-thumb .video-label {
|
|
font-size: 0.85rem;
|
|
margin-bottom: 0.6rem;
|
|
}
|
|
|
|
body.crystal-dance-page .countdown-note {
|
|
display: block;
|
|
margin-top: 2.5rem;
|
|
text-align: center;
|
|
font-weight: 700;
|
|
color: var(--color-brand-dark);
|
|
font-size: 0.95rem;
|
|
letter-spacing: 0.5px;
|
|
padding: 0.75rem 1rem;
|
|
background: var(--color-surface-soft);
|
|
border-radius: 999px;
|
|
max-width: 420px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* ③ summer-form:分階段邊框排版(風格參考見面會應援調查表,顏色用全站 token) */
|
|
body.crystal-dance-page .summer-form {
|
|
max-width: 720px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__stage + .summer-form__stage {
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__stage-title {
|
|
font-weight: 800;
|
|
color: var(--color-brand-dark);
|
|
font-size: 0.95rem;
|
|
letter-spacing: 0.04em;
|
|
margin-bottom: 0.75rem;
|
|
text-align: left;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__stage-body {
|
|
border: 1px solid rgba(255, 204, 0, 0.35);
|
|
border-radius: 12px;
|
|
padding: 1.5rem 1.75rem;
|
|
background: #fff;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__stage-body--notice {
|
|
background: var(--color-surface-soft);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__stage-body .row {
|
|
--bs-gutter-y: 1.35rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .form-label {
|
|
font-weight: 700;
|
|
color: var(--color-brand-dark);
|
|
font-size: 0.9rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .form-control,
|
|
body.crystal-dance-page .summer-form .form-select {
|
|
border: 1px solid rgba(255, 204, 0, 0.35);
|
|
border-radius: 10px;
|
|
padding: 0.65rem 0.9rem;
|
|
background: #fff;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .form-control:focus,
|
|
body.crystal-dance-page .summer-form .form-select:focus {
|
|
border-color: var(--color-brand);
|
|
box-shadow: 0 0 0 0.2rem rgba(255, 204, 0, 0.2);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .form-control[type="file"] {
|
|
border-style: dashed;
|
|
cursor: pointer;
|
|
background: var(--color-surface-soft);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .form-text {
|
|
color: var(--color-text-muted);
|
|
font-size: 0.82rem;
|
|
margin-top: 0.35rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-outline-dance {
|
|
border: 1.5px solid var(--color-brand-dark);
|
|
color: var(--color-brand-dark);
|
|
border-radius: 999px;
|
|
font-weight: 600;
|
|
font-size: 0.88rem;
|
|
padding: 0.38rem 1rem;
|
|
background: #fff;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-check:checked + .btn-outline-dance,
|
|
body.crystal-dance-page .summer-form .btn-outline-dance:hover {
|
|
background: var(--color-brand);
|
|
color: var(--color-brand-dark);
|
|
border-color: var(--color-brand-dark);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__option-row {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 0.5rem;
|
|
margin-top: 0.15rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .info-list {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.85rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .info-list li {
|
|
color: var(--color-text-muted);
|
|
font-size: 0.9rem;
|
|
line-height: 1.75;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .info-footer-text {
|
|
color: var(--color-text-muted);
|
|
font-size: 0.8rem;
|
|
opacity: 0.85;
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__actions {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 0.75rem;
|
|
margin-top: 2rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__feedback {
|
|
max-width: 860px;
|
|
margin: 0 auto 20px;
|
|
padding: 14px 18px;
|
|
border: 1px solid rgba(78, 73, 43, 0.3);
|
|
border-radius: 10px;
|
|
color: var(--color-text-dark);
|
|
background: var(--color-surface-soft);
|
|
text-align: left;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__feedback--success {
|
|
border-color: var(--color-brand);
|
|
background: var(--color-brand-light);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__feedback--error {
|
|
border-color: var(--color-brand-dark);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__trap {
|
|
position: absolute;
|
|
width: 1px;
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: -1px;
|
|
overflow: hidden;
|
|
clip: rect(0, 0, 0, 0);
|
|
white-space: nowrap;
|
|
border: 0;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-dance {
|
|
background: var(--color-brand);
|
|
color: var(--color-brand-dark);
|
|
border: none;
|
|
border-radius: 999px;
|
|
font-weight: 800;
|
|
padding: 0.8rem 1.5rem;
|
|
letter-spacing: 0.5px;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-dance:hover {
|
|
background: var(--color-brand-dark);
|
|
color: var(--color-text-inverse);
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-reset-dance {
|
|
background: #fff;
|
|
color: var(--color-brand-dark);
|
|
border: 1.5px solid var(--color-brand-dark);
|
|
border-radius: 999px;
|
|
font-weight: 700;
|
|
padding: 0.8rem 1.5rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form .btn-reset-dance:hover {
|
|
background: var(--color-surface-soft);
|
|
}
|
|
|
|
@media (max-width: 575.98px) {
|
|
body.crystal-dance-page .summer-form__stage-body {
|
|
padding: 1.25rem 1.15rem;
|
|
}
|
|
|
|
body.crystal-dance-page .summer-form__actions {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 575.98px) {
|
|
body.crystal-dance-page .page-nav-bar {
|
|
margin: 0 -20px;
|
|
padding: 0.85rem 1rem;
|
|
}
|
|
|
|
body.crystal-dance-page .page-nav-bar a {
|
|
font-size: 0.76rem;
|
|
padding: 0.2rem 0.55rem;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body class="crystal-dance-page">
|
|
<header class="inner-page-header">
|
|
<div class="header-inner site-header-inner">
|
|
<h1 class="main-title">水晶熱舞社</h1>
|
|
<div class="subtitle-wrap">
|
|
<span class="sub-title">SECHSKIES DANCE ARCHIVE & 30TH FAN PROJECT</span>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<nav class="portal-nav" aria-label="水晶男孩推廣部導覽" data-portal-nav></nav>
|
|
|
|
<canvas id="particles"></canvas>
|
|
|
|
<div class="container">
|
|
|
|
<!-- ① 認識水晶熱舞社 -->
|
|
<section id="about">
|
|
<img class="hero-banner" src="../assets/images/crystal-dance-hero.jpg" alt="水晶熱舞社應援視覺">
|
|
<span class="category-tag">水晶男孩推廣部・舞蹈應援企劃</span>
|
|
<!-- <h2 class="section-title">水晶熱舞社不是一般社團</h2> -->
|
|
<div class="section-body">
|
|
<p>水晶熱舞社是<span class="mark_b mark_y">水晶男孩推廣部</span>中的舞蹈應援企劃,從 20TH台灣小黃串燒聯舞的集體記憶出發,整理經典舞台、翻跳紀錄與應援行動,並<span class="fan-journey-wave">預備在 2027/04/15 30TH 前</span>募集新的參與者。</p>
|
|
<p>水晶熱舞社不是獨立成立的社團,而是「水晶男孩推廣部」底下的舞蹈、翻跳、應援與影片紀錄分類。凡是跟 SECHSKIE舞台有關的練習、重現與紀錄,都會被收進這個企劃裡,由歷屆台灣小黃接力整理與延續。</p>
|
|
</div>
|
|
<!-- <div class="keyword-row">
|
|
<span class="keyword-chip">💛 經典舞台</span>
|
|
<span class="keyword-chip">🕺 應援舞蹈</span>
|
|
<span class="keyword-chip">🎥 翻跳紀錄</span>
|
|
<span class="keyword-chip">💃 串燒聯舞</span>
|
|
<span class="keyword-chip">🇹🇼 台灣小黃</span>
|
|
</div>
|
|
<nav class="page-nav-bar" aria-label="頁面導覽">
|
|
<a href="#about">認識熱舞社</a>
|
|
<a href="#from-20th-to-30th">20TH 到 30TH</a>
|
|
<a href="#form-30th">應援表單</a>
|
|
</nav> -->
|
|
</section>
|
|
|
|
<!-- ② 從 20TH 到 30TH -->
|
|
<section id="from-20th-to-30th">
|
|
|
|
<div class="video-grid">
|
|
<h2 class="section-title">從 20TH 到 30TH</h2>
|
|
<div class="video-feature">
|
|
<!-- <span class="video-label">20TH 正式影片</span> -->
|
|
<div class="ratio ratio-16x9">
|
|
<iframe src="https://www.youtube.com/embed/fkJmOMPirBc" title="20TH 正式影片:SECHSKIES 20週年紀念串燒舞蹈"
|
|
allowfullscreen></iframe>
|
|
</div>
|
|
<div class="section-body">
|
|
<p>水晶熱舞社是<span class="mark_b mark_y">水晶男孩推廣部</span>底下的舞蹈應援企劃,從 20TH 台灣小黃串燒聯舞的集體記憶出發,整理 SECHSKIES 經典舞台、翻跳紀錄與應援行動,並<span class="fan-journey-wave">預備在 2027/04/15 30TH 前</span>募集新的參與者,由歷屆台灣小黃接力延續。</p>
|
|
</div>
|
|
</div>
|
|
|
|
<h3 class="sub-section-title">延伸閱讀</h3>
|
|
<div class="row g-4">
|
|
<div class="col-12 col-sm-6 col-lg-4">
|
|
<div class="video-thumb">
|
|
<div class="ratio ratio-16x9">
|
|
<iframe src="https://www.youtube.com/embed/ARi0cfpv6mE" title="20TH 預告影片"
|
|
allowfullscreen></iframe>
|
|
</div>
|
|
<span class="video-label">預告</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-sm-6 col-lg-4">
|
|
<div class="video-thumb">
|
|
<div class="ratio ratio-16x9">
|
|
<iframe src="https://www.youtube.com/embed/nygNm5mtsJM" title="幕後花絮 #1"
|
|
allowfullscreen></iframe>
|
|
</div>
|
|
<span class="video-label">幕後花絮 #1</span>
|
|
</div>
|
|
</div>
|
|
<div class="col-12 col-sm-6 col-lg-4">
|
|
<div class="video-thumb">
|
|
<div class="ratio ratio-16x9">
|
|
<iframe src="https://www.youtube.com/embed/f04neSErUEY" title="幕後花絮 #2・雨中共舞"
|
|
allowfullscreen></iframe>
|
|
</div>
|
|
<span class="video-label">幕後花絮 #2・雨中共舞</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- <h3 class="sub-section-title">30TH 應援募集</h3> -->
|
|
<div class="section-body">
|
|
<p>2027/04/15 是 SECHSKIES 出道 30 周年的日子。水晶熱舞社預計在 30TH
|
|
前重新整理舞蹈應援內容,募集想一起參與的台灣小黃,從經典舞曲、翻跳練習、影片剪輯到祝福文字,讓新的應援行動從這份表單開始累積。</p>
|
|
<p>你不需要一開始就很會跳舞,只要還記得水晶男孩的舞台、歌曲,或某個讓你入坑的瞬間,都可以在這裡留下你的參與方式。</p>
|
|
</div>
|
|
<span class="countdown-note" id="countdown">💛 距離 30TH · 2027/04/15 倒數計算中...</span>
|
|
</section>
|
|
|
|
<!-- ③ 30TH 應援募集表單 -->
|
|
<section id="form-30th">
|
|
<h2 class="section-title">30TH 應援募集表單</h2>
|
|
<p class="form-lead">這份表單是水晶熱舞社為 2027/04/15 30TH 預備的應援募集模組,用來整理參與者想練的歌曲、可支援的內容與想留下的祝福。</p>
|
|
|
|
<div class="summer-form__feedback" data-form-feedback hidden tabindex="-1" aria-live="polite"></div>
|
|
|
|
<form class="summer-form" action="dance-application-submit.php" method="post" enctype="multipart/form-data" data-dance-application-form>
|
|
<label class="summer-form__trap" aria-hidden="true">網站<input type="text" name="website" tabindex="-1" autocomplete="off"></label>
|
|
|
|
<div class="summer-form__stage">
|
|
<h3 class="summer-form__stage-title">填寫須知</h3>
|
|
<div class="summer-form__stage-body summer-form__stage-body--notice">
|
|
<ul class="info-list">
|
|
<li>📎 檔案格式:影片或圖片皆可,單檔上限 8 MB</li>
|
|
<li>🔒 這份資料僅供水晶熱舞社內部整理 30TH 應援企劃使用</li>
|
|
<li>📅 送出後若確定參與,之後會另行公告練習與錄製時間</li>
|
|
</ul>
|
|
<p class="info-footer-text">水晶男孩推廣部・30TH 應援企劃</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="summer-form__stage">
|
|
<h3 class="summer-form__stage-title">第一階段|參與者基本資料</h3>
|
|
<div class="summer-form__stage-body">
|
|
<div class="row g-4">
|
|
<div class="col-12 col-sm-6">
|
|
<label for="nickname" class="form-label">暱稱</label>
|
|
<input type="text" class="form-control" id="nickname" name="nickname"
|
|
maxlength="80" placeholder="例:熱舞小黃" required>
|
|
</div>
|
|
<div class="col-12 col-sm-6">
|
|
<label for="email" class="form-label">Email</label>
|
|
<input type="email" class="form-control" id="email" name="email"
|
|
maxlength="190" placeholder="dance@example.com" required>
|
|
</div>
|
|
<div class="col-12 col-sm-6">
|
|
<label for="dance_years" class="form-label">練舞經驗年數</label>
|
|
<input type="number" class="form-control" id="dance_years" name="dance_years"
|
|
min="0" max="30" placeholder="0">
|
|
</div>
|
|
<div class="col-12 col-sm-6">
|
|
<label for="available_date" class="form-label">可參與日期</label>
|
|
<input type="date" class="form-control" id="available_date" name="available_date">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="summer-form__stage">
|
|
<h3 class="summer-form__stage-title">第二階段|30TH 參與意向</h3>
|
|
<div class="summer-form__stage-body">
|
|
<div class="row g-4">
|
|
<div class="col-12">
|
|
<label class="form-label d-block">是否參加過 20TH</label>
|
|
<div class="summer-form__option-row">
|
|
<input type="radio" class="btn-check" name="attended_20th"
|
|
id="attended_20th_yes" value="attended" autocomplete="off" required>
|
|
<label class="btn btn-outline-dance" for="attended_20th_yes">參加過 20TH</label>
|
|
|
|
<input type="radio" class="btn-check" name="attended_20th"
|
|
id="attended_20th_video" value="watched_video" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="attended_20th_video">看過 20TH 影片</label>
|
|
|
|
<input type="radio" class="btn-check" name="attended_20th"
|
|
id="attended_20th_first" value="first_time" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="attended_20th_first">第一次知道</label>
|
|
</div>
|
|
</div>
|
|
<div class="col-12">
|
|
<label class="form-label d-block">想參與的 30TH 內容(可複選)</label>
|
|
<div class="summer-form__option-row">
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_cover" value="cover" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_cover">翻跳</label>
|
|
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_medley" value="medley" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_medley">串燒聯舞</label>
|
|
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_blessing" value="blessing" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_blessing">祝福影片</label>
|
|
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_graphic" value="graphic" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_graphic">圖文應援</label>
|
|
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_editing" value="editing" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_editing">影片剪輯</label>
|
|
|
|
<input type="checkbox" class="btn-check" name="participate_content[]"
|
|
id="content_archive" value="archive" autocomplete="off">
|
|
<label class="btn btn-outline-dance" for="content_archive">資料整理</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="summer-form__stage">
|
|
<h3 class="summer-form__stage-title">第三階段|應援內容與祝福</h3>
|
|
<div class="summer-form__stage-body">
|
|
<div class="row g-4">
|
|
<div class="col-12 col-sm-6">
|
|
<label for="song" class="form-label">想練的歌曲</label>
|
|
<select class="form-select" id="song" name="song">
|
|
<option value="" selected>請選擇歌曲</option>
|
|
<option value="couple">Couple</option>
|
|
<option value="comeback">Com' Back</option>
|
|
<option value="road_fighter">Road Fighter</option>
|
|
<option value="pom_saeng_pom_sa">Pom Saeng Pom Sa</option>
|
|
<option value="other">其他</option>
|
|
</select>
|
|
</div>
|
|
<div class="col-12 col-sm-6">
|
|
<label for="reference_file" class="form-label">上傳參考影片或圖片</label>
|
|
<input class="form-control" type="file" id="reference_file" name="reference_file"
|
|
accept="image/*,video/*">
|
|
<div class="form-text">翻跳影片、舞台照片或剪輯素材皆可</div>
|
|
</div>
|
|
<div class="col-12">
|
|
<label for="message_30th" class="form-label">想對 30TH 說的話</label>
|
|
<textarea class="form-control" id="message_30th" name="message_30th" rows="4" maxlength="5000"
|
|
placeholder="想對水晶熱舞社說的話、想貢獻的部分、想見到誰、想留下的祝福……"></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="summer-form__actions">
|
|
<button type="reset" class="btn btn-reset-dance">重新填寫</button>
|
|
<button type="submit" class="btn btn-dance" data-submit-button>送出應援表單 💛</button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
|
|
</div>
|
|
|
|
<footer>
|
|
<p>SECHSKIES Fanpage © 2026 - 黃色氣球永遠飄揚</p>
|
|
<a href="https://jekkinoopy.github.io/Portfolio/" class="studio-link" target="_blank" rel="noopener noreferrer">
|
|
Design by <span class="mark_b">Jekkinoopy Studio</span>
|
|
</a>
|
|
</footer>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script src="../assets/js/particles.js"></script>
|
|
<script src="../assets/js/portal-nav.js"></script>
|
|
<script>
|
|
(function () {
|
|
var target = new Date('2027-04-15T00:00:00+08:00');
|
|
var now = new Date();
|
|
var diffDays = Math.ceil((target - now) / (1000 * 60 * 60 * 24));
|
|
var el = document.getElementById('countdown');
|
|
if (el) {
|
|
el.textContent = diffDays > 0
|
|
? '💛 距離 30TH · 2027/04/15 還有 ' + diffDays + ' 天'
|
|
: '💛 30TH · 2027/04/15 已經到來,一起再集合!';
|
|
}
|
|
})();
|
|
|
|
(function () {
|
|
var form = document.querySelector('[data-dance-application-form]');
|
|
var feedback = document.querySelector('[data-form-feedback]');
|
|
var submitButton = document.querySelector('[data-submit-button]');
|
|
var result = new URLSearchParams(window.location.search).get('form');
|
|
var messages = {
|
|
success: ['success', '已收到你的應援報名!水晶熱舞社整理後會依你留下的 Email 聯絡。'],
|
|
invalid: ['error', '有欄位尚未完成或格式不正確,請檢查後再送出。'],
|
|
file_too_large: ['error', '上傳檔案超過 8 MB,請縮小檔案後再送出。'],
|
|
file_type: ['error', '檔案格式不支援,請改用圖片、MP4、WebM 或 MOV。'],
|
|
too_many: ['error', '短時間內送出次數較多,請稍候兩分鐘再試。'],
|
|
unavailable: ['error', '目前暫時無法儲存報名,請稍後再試。']
|
|
};
|
|
|
|
function showFeedback(type, message) {
|
|
if (!feedback) return;
|
|
feedback.hidden = false;
|
|
feedback.className = 'summer-form__feedback summer-form__feedback--' + type;
|
|
feedback.textContent = message;
|
|
feedback.focus();
|
|
}
|
|
|
|
if (result && messages[result]) {
|
|
showFeedback(messages[result][0], messages[result][1]);
|
|
}
|
|
|
|
if (form) {
|
|
form.addEventListener('submit', function (event) {
|
|
var selectedContent = form.querySelectorAll('input[name="participate_content[]"]:checked');
|
|
if (!selectedContent.length) {
|
|
event.preventDefault();
|
|
showFeedback('error', '請至少選擇一項想參與的 30TH 內容。');
|
|
var firstContent = form.querySelector('input[name="participate_content[]"]');
|
|
if (firstContent) firstContent.focus();
|
|
return;
|
|
}
|
|
if (submitButton) {
|
|
submitButton.disabled = true;
|
|
submitButton.textContent = '送出中…';
|
|
}
|
|
});
|
|
}
|
|
})();
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|