feat 電子書
@@ -0,0 +1,3 @@
|
||||
# 影片頁筆記(索引)
|
||||
|
||||
編輯規格以 **`docs/totoga2-video-notes.md`** 為準;對應頁面為 `extra/totoga2-video.html`。
|
||||
@@ -61,8 +61,8 @@ header {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* 導覽列 */
|
||||
nav {
|
||||
/* 導覽列(排除 portal、B 站分集 tab 等自帶版面之 nav,避免 space-between/大 padding 破壞) */
|
||||
nav:not(.portal-nav):not(.bilivideo-episode-nav) {
|
||||
background-color: var(--black);
|
||||
padding: 0.8rem;
|
||||
display: flex;
|
||||
@@ -86,25 +86,20 @@ nav {
|
||||
|
||||
}
|
||||
|
||||
nav ul {
|
||||
nav:not(.portal-nav):not(.bilivideo-episode-nav) ul {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
/* 不寫 color:主色/hover 交給 .portal-nav 與全站 `a {}`;避免黃字規則意外影響可及元件 */
|
||||
nav a {
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
font-size: 0.95rem;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
|
||||
nav a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.portal-nav li {
|
||||
position: relative;
|
||||
padding-bottom: 8px;
|
||||
@@ -2119,7 +2114,7 @@ body.ebook-ssg2-page .ebook-intro.section {
|
||||
body.ebook-ssg2-page .flip-ebook-shell {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: 1100px;
|
||||
max-width: min(1000px, 96vw);
|
||||
margin: 0 auto 2rem;
|
||||
border-radius: 14px;
|
||||
overflow: hidden;
|
||||
@@ -2143,6 +2138,63 @@ body.ebook-ssg2-page .flip-ebook-aspect iframe {
|
||||
top: 0;
|
||||
}
|
||||
|
||||
/* PDF.js + PageFlip:與 iframe 相同,填滿 padding-top 預留區,否則父層 height:0 會看不到內容 */
|
||||
body.ebook-ssg2-page .flip-ebook-aspect > #my-flipbook {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page .flip-ebook-aspect .ebook-pdf-error {
|
||||
margin: 0;
|
||||
padding: 1rem 1.25rem;
|
||||
color: #5c3d00;
|
||||
background: #fff7da;
|
||||
border-radius: 10px;
|
||||
font-size: 0.95rem;
|
||||
line-height: 1.55;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page .flip-ebook-aspect .ebook-pdf-error code {
|
||||
font-size: 0.85em;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
/* PageFlip + PDF.js:不用 iframe 的 padding-top 比例盒,避免書被壓小、擠扁 */
|
||||
body.ebook-ssg2-page .flip-ebook-aspect.flip-ebook-aspect--pageflip {
|
||||
height: auto;
|
||||
padding-top: 0;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: clamp(12px, 2vw, 20px);
|
||||
background: #0a0a0a;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page .flip-ebook-aspect--pageflip > #my-flipbook {
|
||||
position: static;
|
||||
width: auto;
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page #my-flipbook .page {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page #my-flipbook .page canvas {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
body.ebook-ssg2-page .ebook-back-link {
|
||||
text-align: center;
|
||||
margin: 0 0 2.5rem;
|
||||
@@ -2178,7 +2230,7 @@ body.totoga2-page.totoga2-video-copy-page {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
/* 節目影片複本:上/中/下集在播放器外殼內、緊貼 iframe 上方;維持全站 .btn 黃膠囊 */
|
||||
/* 節目影片複本:上/中/下集在播放器外殼內、緊貼 iframe 下方;維持全站 .btn 黃膠囊 */
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-hub .bilivideo-tabs__shell {
|
||||
max-width: 960px;
|
||||
margin-left: auto;
|
||||
@@ -2208,29 +2260,48 @@ body.totoga2-page.totoga2-video-copy-page .totoga2-copy-sibling-links__sep {
|
||||
opacity: 0.55;
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell .bilivideo-episode-nav {
|
||||
/* DOM 上 tablist 在 panels 前(見 totoga2-video.html);order 讓畫面仍為「影片在上、分集在下」 */
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell nav.bilivideo-episode-nav {
|
||||
order: 2;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
padding: 12px 14px 14px;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
box-sizing: border-box;
|
||||
padding: 14px 14px 12px;
|
||||
margin: 0;
|
||||
background: #0a0a0a;
|
||||
border-bottom: 1px solid rgba(255, 204, 0, 0.28);
|
||||
border-top: 1px solid rgba(255, 204, 0, 0.28);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell .bilivideo-episode-nav .btn {
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell nav.bilivideo-episode-nav .btn {
|
||||
margin: 0;
|
||||
flex: 0 0 auto;
|
||||
opacity: 0.92;
|
||||
color: #141414;
|
||||
-webkit-text-fill-color: #141414;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell .bilivideo-episode-nav .bilivideo-episode-nav__tab--active {
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell nav.bilivideo-episode-nav .btn:hover,
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell nav.bilivideo-episode-nav .btn:focus-visible {
|
||||
color: #141414;
|
||||
-webkit-text-fill-color: #141414;
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell nav.bilivideo-episode-nav .bilivideo-episode-nav__tab--active {
|
||||
opacity: 1;
|
||||
box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.32);
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
border-radius: 14px;
|
||||
overflow: hidden;
|
||||
border: 1px solid rgba(255, 204, 0, 0.38);
|
||||
@@ -2239,6 +2310,9 @@ body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__shell {
|
||||
}
|
||||
|
||||
body.totoga2-page.totoga2-video-copy-page .bilivideo-tabs__panels {
|
||||
order: 1;
|
||||
flex: 0 0 auto;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 795 KiB After Width: | Height: | Size: 795 KiB |
|
Before Width: | Height: | Size: 482 KiB After Width: | Height: | Size: 482 KiB |
|
Before Width: | Height: | Size: 721 KiB After Width: | Height: | Size: 721 KiB |
|
Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB |
|
Before Width: | Height: | Size: 631 KiB After Width: | Height: | Size: 631 KiB |
|
Before Width: | Height: | Size: 808 KiB After Width: | Height: | Size: 808 KiB |
|
Before Width: | Height: | Size: 816 KiB After Width: | Height: | Size: 816 KiB |
|
Before Width: | Height: | Size: 852 KiB After Width: | Height: | Size: 852 KiB |
|
Before Width: | Height: | Size: 849 KiB After Width: | Height: | Size: 849 KiB |
|
Before Width: | Height: | Size: 833 KiB After Width: | Height: | Size: 833 KiB |
|
Before Width: | Height: | Size: 803 KiB After Width: | Height: | Size: 803 KiB |
|
Before Width: | Height: | Size: 750 KiB After Width: | Height: | Size: 750 KiB |
|
Before Width: | Height: | Size: 743 KiB After Width: | Height: | Size: 743 KiB |
|
Before Width: | Height: | Size: 887 KiB After Width: | Height: | Size: 887 KiB |
|
Before Width: | Height: | Size: 830 KiB After Width: | Height: | Size: 830 KiB |
|
Before Width: | Height: | Size: 293 KiB After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 89 KiB |
@@ -1,6 +1,6 @@
|
||||
# 筆記:`extra/totoga2-copy-video.html`(站主/編輯用,不對讀者顯示)
|
||||
# 筆記:`extra/totoga2-video.html`(站主/編輯用,不對讀者顯示)
|
||||
|
||||
對應檔案:`extra/totoga2-copy-video.html`。
|
||||
對應檔案:`extra/totoga2-video.html`。
|
||||
|
||||
- 以下為 Bilibili 嵌入播放器(16:9)。請用上集/中集/下集分頁切換;若無法播放請至站內搜尋同一 BV 號。中集、下集可將 iframe 的 `bvid` 換成分集連結。
|
||||
- 中集、下集 iframe 使用 `data-src`,第一次切到該分頁時由頁內 script 寫入 `src`;改連結時請改 `data-src`(或已寫入後的 `src`)。
|
||||
@@ -119,9 +119,9 @@
|
||||
<td class="site-guide-nav-link-cell"><span class="site-guide-nav-nolink">—</span></td>
|
||||
</tr>
|
||||
<tr data-site-guide-depth="3">
|
||||
<td class="site-guide-nav-menu-cell"><span class="site-guide-nav-name"><a href="totoga2-copy-video.html">影片</a></span></td>
|
||||
<td class="site-guide-nav-menu-cell"><span class="site-guide-nav-name"><a href="totoga2-video.html">影片</a></span></td>
|
||||
<td class="site-guide-nav-desc">無限挑戰 · 六六歌2 嵌入影片單頁。</td>
|
||||
<td class="site-guide-nav-link-cell"><a href="totoga2-copy-video.html"><code>extra/totoga2-copy-video.html</code></a></td>
|
||||
<td class="site-guide-nav-link-cell"><a href="totoga2-video.html"><code>extra/totoga2-video.html</code></a></td>
|
||||
</tr>
|
||||
<tr data-site-guide-depth="3">
|
||||
<td class="site-guide-nav-menu-cell"><span class="site-guide-nav-name"><a href="totoga2-copy-ebook.html">電子書</a></span></td>
|
||||
@@ -254,8 +254,8 @@
|
||||
<td>區塊錨點(<code>#story</code> 不在頂欄白名單)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="totoga2-copy-video.html">影片</a></td>
|
||||
<td>平行單頁 · <code>totoga2-copy-video.html</code></td>
|
||||
<td><a href="totoga2-video.html">影片</a></td>
|
||||
<td>平行單頁 · <code>totoga2-video.html</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="totoga2-copy-ebook.html">電子書</a></td>
|
||||
@@ -277,7 +277,7 @@
|
||||
<h3><a href="../fallen/totoga2.html">六六歌2 · 四入口</a></h3>
|
||||
<p class="site-guide-note">複本總覽:<a href="totoga2%20copy.html">totoga2 copy.html</a>。章節錨點僅在網頁版(TOTOGA2)內。</p>
|
||||
<ul class="site-guide-inline-links">
|
||||
<li><a href="totoga2-copy-video.html">影片</a></li>
|
||||
<li><a href="totoga2-video.html">影片</a></li>
|
||||
<li><a href="totoga2-copy-ebook.html">電子書</a></li>
|
||||
<li><a href="totoga2-copy-timeline.html">時間軸</a></li>
|
||||
<li><a href="../fallen/totoga2.html">網頁版(TOTOGA2)</a></li>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</section>
|
||||
|
||||
<nav class="ebook-back-link totoga2-split-crossnav totoga2-copy-hub-nav" aria-label="六六歌2 複本分頁入口">
|
||||
<a href="totoga2-copy-video.html" class="btn">節目影片 · 三集 Bilibili</a>
|
||||
<a href="totoga2-video.html" class="btn">節目影片 · 三集 Bilibili</a>
|
||||
<a href="totoga2-copy-ebook.html" class="btn">紀實電子書 · FlipHTML5</a>
|
||||
<a href="totoga2-copy-timeline.html" class="btn">時間軸+紀實長文八章</a>
|
||||
</nav>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<canvas id="particles"></canvas>
|
||||
|
||||
<nav class="ebook-back-link content-container totoga2-split-crossnav" aria-label="六六歌2 複本分頁">
|
||||
<a href="totoga2-copy-video.html" class="btn">節目影片</a>
|
||||
<a href="totoga2-video.html" class="btn">節目影片</a>
|
||||
<a href="totoga2-copy-ebook.html" class="btn" aria-current="page">紀實電子書</a>
|
||||
<a href="totoga2-copy-timeline.html" class="btn">時間軸+長文</a>
|
||||
<a href="totoga2%20copy.html" class="btn">複本總覽</a>
|
||||
@@ -35,21 +35,28 @@
|
||||
<section class="ebook-intro section" aria-label="電子書說明">
|
||||
<h2 class="section-title">紀實電子書</h2>
|
||||
<p class="ebook-intro-lead">
|
||||
以下為《無限挑戰》六六歌2 相關跨頁電子書(FlipHTML5)。若載入較慢,請稍候或重新整理;全螢幕閱讀請使用閱讀器內建控制項。
|
||||
以下為《無限挑戰》六六歌2 紀實跨頁 PDF(以 PDF.js 載入、PageFlip 翻頁)。若載入較慢請稍候;請以本機伺服器開啟頁面(勿用 file://),否則 PDF 可能被瀏覽器擋下。
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<div class="flip-ebook-shell">
|
||||
<!-- <div class="flip-ebook-shell">
|
||||
<div class="flip-ebook-aspect">
|
||||
<iframe src="https://online.fliphtml5.com/tjyxm/vqff/"
|
||||
title="2023_電子書_無限挑戰六六歌2_final跨頁" allowfullscreen></iframe>
|
||||
<iframe src="https://online.fliphtml5.com/tjyxm/vqff/" title="2023_電子書_無限挑戰六六歌2_final跨頁"
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="flip-ebook-shell">
|
||||
<div id="book-container" class="flip-ebook-aspect flip-ebook-aspect--pageflip">
|
||||
<!-- PDF.js + PageFlip 會在此產生頁面 -->
|
||||
<div id="my-flipbook"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="ebook-back-link content-container">
|
||||
<a href="../index.html#story" class="btn">回到首頁 · 傳奇的轉折</a>
|
||||
<a href="totoga2-copy-video.html" class="btn">節目影片(另頁)</a>
|
||||
<a href="totoga2-video.html" class="btn">節目影片(另頁)</a>
|
||||
<a href="totoga2-copy-timeline.html" class="btn">時間軸+八章(另頁)</a>
|
||||
</p>
|
||||
|
||||
@@ -62,6 +69,92 @@
|
||||
|
||||
<script src="../assets/js/particles.js"></script>
|
||||
<script src="../assets/js/portal-nav.js"></script>
|
||||
<!-- 1. 引入 PDF.js 核心庫 -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js"></script>
|
||||
<!-- 2. 引入 PageFlip -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/page-flip/dist/js/page-flip.browser.js"></script>
|
||||
<script>
|
||||
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js';
|
||||
|
||||
/** 專案內實際存在的 PDF(原 totoga2/ebook/totoga2_ebook.pdf 尚未建檔) */
|
||||
var EBOOK_PDF_URL = '../assets/images/totoga2/totoga2.pdf';
|
||||
|
||||
function showEbookError(message) {
|
||||
var box = document.getElementById('my-flipbook');
|
||||
if (!box) return;
|
||||
box.innerHTML = '<p class="ebook-pdf-error" role="alert">' + message + '</p>';
|
||||
}
|
||||
|
||||
async function initEbook(pdfUrl) {
|
||||
var container = document.getElementById('my-flipbook');
|
||||
if (!container) throw new Error('找不到 #my-flipbook');
|
||||
if (typeof pdfjsLib === 'undefined') throw new Error('PDF.js 未載入');
|
||||
if (typeof St === 'undefined' || !St.PageFlip) throw new Error('PageFlip(St.PageFlip)未載入');
|
||||
|
||||
var loadingTask = pdfjsLib.getDocument(pdfUrl);
|
||||
var pdf = await loadingTask.promise;
|
||||
|
||||
/* 第 1 頁為封面;內文比例以第 2 頁為準(與 PageFlip showCover 一致) */
|
||||
var sizePageIndex = pdf.numPages >= 2 ? 2 : 1;
|
||||
var sizePage = await pdf.getPage(sizePageIndex);
|
||||
var natural = sizePage.getViewport({ scale: 1 });
|
||||
var shell = document.querySelector('.flip-ebook-shell');
|
||||
var maxW = Math.min((shell && shell.clientWidth) || 1000, 1000) - 8;
|
||||
var pageW = Math.max(320, Math.floor(maxW));
|
||||
var pageH = Math.floor(pageW * (natural.height / natural.width));
|
||||
var maxH = Math.floor(window.innerHeight * 0.72);
|
||||
if (pageH > maxH) {
|
||||
pageH = maxH;
|
||||
pageW = Math.floor(pageH * (natural.width / natural.height));
|
||||
}
|
||||
var renderScale = (pageW / natural.width) * Math.min(window.devicePixelRatio || 1, 2);
|
||||
|
||||
for (var i = 1; i <= pdf.numPages; i++) {
|
||||
var page = await pdf.getPage(i);
|
||||
var viewport = page.getViewport({ scale: renderScale });
|
||||
|
||||
var canvas = document.createElement('canvas');
|
||||
var context = canvas.getContext('2d');
|
||||
canvas.height = viewport.height;
|
||||
canvas.width = viewport.width;
|
||||
|
||||
await page.render({ canvasContext: context, viewport: viewport }).promise;
|
||||
|
||||
var pageElement = document.createElement('div');
|
||||
pageElement.className = 'page';
|
||||
if (i === 1) {
|
||||
pageElement.setAttribute('data-density', 'hard');
|
||||
} else if (i === pdf.numPages) {
|
||||
pageElement.setAttribute('data-density', 'hard');
|
||||
}
|
||||
pageElement.appendChild(canvas);
|
||||
container.appendChild(pageElement);
|
||||
}
|
||||
|
||||
var pageFlip = new St.PageFlip(container, {
|
||||
width: pageW,
|
||||
height: pageH,
|
||||
size: 'stretch',
|
||||
// PDF 每個 page 本身已是「A4*2 的攤開幅面」;避免 StPageFlip 在橫向模式下把頁寬視為總寬一半
|
||||
// 導致看起來像把兩頁攤在一起、寬度被切半。
|
||||
usePortrait: true,
|
||||
showCover: true,
|
||||
startPage: 0,
|
||||
drawShadow: true,
|
||||
maxShadowOpacity: 0.4
|
||||
});
|
||||
pageFlip.loadFromHTML(document.querySelectorAll('#my-flipbook .page'));
|
||||
}
|
||||
|
||||
initEbook(EBOOK_PDF_URL).catch(function (err) {
|
||||
console.error(err);
|
||||
showEbookError(
|
||||
'電子書 PDF 無法載入或翻頁初始化失敗。若用本機直接開檔案(file://),請改由本機伺服器開啟;並確認路徑存在:<code>'
|
||||
+ EBOOK_PDF_URL + '</code>'
|
||||
);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -25,7 +25,7 @@
|
||||
<canvas id="particles"></canvas>
|
||||
|
||||
<nav class="ebook-back-link content-container totoga2-split-crossnav" aria-label="六六歌2 複本分頁">
|
||||
<a href="totoga2-copy-video.html" class="btn">節目影片</a>
|
||||
<a href="totoga2-video.html" class="btn">節目影片</a>
|
||||
<a href="totoga2-copy-ebook.html" class="btn">紀實電子書</a>
|
||||
<a href="totoga2-copy-timeline.html" class="btn" aria-current="page">時間軸+長文</a>
|
||||
<a href="totoga2%20copy.html" class="btn">複本總覽</a>
|
||||
@@ -65,71 +65,9 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="chronicle-controls content-container totoga2-chronicle-controls">
|
||||
<button type="button" class="mode-btn active" data-totoga-reader-mode="scroll">網漫模式(一路滑下去)</button>
|
||||
<button type="button" class="mode-btn" data-totoga-reader-mode="paged">分頁模式(上一頁 / 下一頁)</button>
|
||||
</div>
|
||||
|
||||
<main class="content-container chronicle-reader" id="totoga2-reader" data-mode="scroll">
|
||||
<article class="chronicle-chapter active" id="challenge" data-title="無限挑戰">
|
||||
<h2>04 無限挑戰</h2>
|
||||
<p>《無限挑戰》是韓國綜藝史上指標性的真人秀節目。「星期六星期六是歌手(六六歌)」企劃,成為水晶男孩 2016 回歸舞台的關鍵起點。</p>
|
||||
<p>第一季掀起 90 年代懷舊熱潮,雖然水晶男孩未能完整出演,卻留下「總有一天要六人完整回到舞台」的遺憾伏筆。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="ssg2" data-title="六六歌第二季">
|
||||
<h2>06 六六歌第二季</h2>
|
||||
<p>第二季改成「為單一團體打造完整回歸敘事」,保密層級更高,連主持群都縮小到劉在錫與 HAHA,避免消息提前走漏。</p>
|
||||
<p>從開場的復古裝扮、試探式線索到真正揭曉團體身份,節目節奏在搞笑與懸念間拉開這場 16 年重逢序章。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="sechskies-profile" data-title="水晶男孩">
|
||||
<h2>08 水晶男孩</h2>
|
||||
<p>1997 出道後迅速登頂,與同世代頂流並列,短短三年創下極高銷量與舞台紀錄,卻在 2000 無預警解散,留下集體創傷。</p>
|
||||
<p>16 年間六人從未以水晶男孩名義完整合體,這次企劃不只是回憶,而是回應當年未說完的離別。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="gather" data-title="召集">
|
||||
<h2>10 召集</h2>
|
||||
<p>製作組先與隊長殷志源交涉,再透過隱藏攝影機確認成員意願。大家都希望重組,卻同時知道最困難的拼圖是離開演藝圈多年的高志溶。</p>
|
||||
<p>這個階段的重點不是舞台,而是「願不願意再次站在一起」的心理門檻。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="negotiate" data-title="正式交涉">
|
||||
<h2>11 正式交涉</h2>
|
||||
<p>主持人與成員深度對話,回顧解散緣由、舞台記憶、KTV 挑戰與游擊演唱會規則。笑鬧之間,團魂逐漸浮現。</p>
|
||||
<p>同時,節目也把高志溶議題正式擺上檯面:如果不是完整體,這次回歸是否還成立?</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="variables" data-title="變數">
|
||||
<h2>16 變數</h2>
|
||||
<p>排練期間接連出現傷病、手術需求與消息外流,原本理想的游擊演唱會計畫屢次被迫改寫,團隊陷入 B 計畫陰影。</p>
|
||||
<p>在體力與心理都被拉到極限的情況下,成員仍選擇撐住,只為把久違舞台交回給等待 16 年的小黃。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="surprise" data-title="驚喜">
|
||||
<h2>19 驚喜</h2>
|
||||
<p>當所有人幾乎接受「不完整」時,節目仍悄悄推進最後安排。高志溶與成員的情感張力在此段達到最高點。</p>
|
||||
<p>這份驚喜不是綜藝反轉,而是把六顆水晶的空位真正填回舞台。</p>
|
||||
</article>
|
||||
|
||||
<article class="chronicle-chapter" id="final-stage" data-title="登場">
|
||||
<h2>21 登場</h2>
|
||||
<p>眼罩揭開後,滿場黃海與哭聲同時湧現。從《請記得我》到安可,《離別曲》在那一晚變成了「重逢證詞」。</p>
|
||||
<p>2000 的缺憾,在 2016 終於補上。這一頁不是結束,而是團體與粉絲共同完成的回歸章節。</p>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<div class="chronicle-pager content-container" id="totoga2-pager" hidden>
|
||||
<button type="button" id="totoga2-prev" class="btn">上一頁</button>
|
||||
<span id="totoga2-chapter-indicator">1 / 8</span>
|
||||
<button type="button" id="totoga2-next" class="btn">下一頁</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="ebook-back-link content-container">
|
||||
<a href="../index.html#story" class="btn">回到首頁 · 傳奇的轉折</a>
|
||||
<a href="totoga2-copy-video.html" class="btn">節目影片(另頁)</a>
|
||||
<a href="totoga2-video.html" class="btn">節目影片(另頁)</a>
|
||||
<a href="totoga2-copy-ebook.html" class="btn">紀實電子書(另頁)</a>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
<h2 class="section-title" id="ebook-bilivideo-heading">節目影片</h2>
|
||||
|
||||
<div class="bilivideo-tabs__shell">
|
||||
<!-- tablist 在 DOM 上須先於 iframe,否則 B 站播放器合成層易蓋住下方按鈕文字;畫面順序改由 CSS flex order 控制 -->
|
||||
<nav class="bilivideo-episode-nav" role="tablist" aria-label="節目影片集數">
|
||||
<button type="button" class="btn bilivideo-episode-nav__tab bilivideo-episode-nav__tab--active"
|
||||
role="tab" id="bilivideo-tab-1" aria-controls="bilivideo-panel-1"
|
||||
@@ -60,6 +60,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
totoga2.html
|
||||
|
||||
/* 含圖列:必須寫在含 #totoga2-reader 的選取器上,否則會輸給上一段 #totoga2-reader .container 的 height,圖會溢出蓋住後文 */
|
||||
body.totoga2-page #totoga2-reader.chronicle-reader .container:has(img) {
|
||||
height: auto;
|
||||
@@ -174,19 +176,18 @@
|
||||
<main class="content-container chronicle-reader" id="totoga2-reader" data-mode="scroll">
|
||||
<article class="chronicle-chapter active" id="challenge" data-title="無限挑戰">
|
||||
<!-- 序號一:第一列 container21(右欄 float:right)+ container22(左欄 float:left)→ 畫面左 01、右 02 -->
|
||||
|
||||
<!-- 序號二:第二列單一全寬 container11 -->
|
||||
<div class="container">
|
||||
<div class="container11">
|
||||
<img src="../assets/images/totoga2/web/cover.jpg" alt="六六歌2">
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="container22">
|
||||
</div>
|
||||
<div class="container21">
|
||||
<img src="../assets/images/totoga2/jpg/2023_電子書_無限挑戰六六歌2_final跨頁_頁面_01.jpg"
|
||||
alt="六六歌2 電子書跨頁圖(序號一 · 右)">
|
||||
</div>
|
||||
</div>
|
||||
<!-- 序號二:第二列單一全寬 container11 -->
|
||||
<div class="container">
|
||||
<div class="container11">
|
||||
<img src="../assets/images/totoga2/jpg/2023_電子書_無限挑戰六六歌2_final跨頁_頁面_03.jpg"
|
||||
alt="六六歌2 電子書跨頁圖(序號二 · 全寬)">
|
||||
<img src="" alt="六六歌2 電子書跨頁圖(序號一 · 右)">
|
||||
</div>
|
||||
</div>
|
||||
<h2>04 無限挑戰</h2>
|
||||
|
||||