Files

130 lines
4.8 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>图片幻灯片</title>
<link rel="stylesheet" href="main.css" />
</head>
<body>
<!-- 幻灯片舞台:同时进入全屏的元素 -->
<main class="stage" id="stage">
<!-- 两张互相叠加的 slide,用于交叉过渡 -->
<div class="slideshow" id="slideshow">
<div class="slide" id="slideA"></div>
<div class="slide" id="slideB"></div>
</div>
<!-- 空状态提示 -->
<div class="hint" id="emptyHint">
<h1 class="hint-title">图片幻灯片</h1>
<p class="hint-desc">
点击右下角的 <span class="kbd">⚙</span> 按钮,在设置中添加至少一个图片目录,即可开始播放。
</p>
<p class="hint-meta">
⚠️ 请使用基于 Chromium 内核的浏览器(Chrome / Edge / Opera),并在 HTTPS 或 localhost 下访问本页面。
</p>
</div>
<!-- 加载状态 -->
<div class="loading" id="loadingHint" hidden>
<div class="spinner"></div>
<p>正在读取图片…</p>
</div>
<!-- 控制按钮条 -->
<div class="controls" id="controls">
<button class="control-btn" id="btnPrev" title="上一张 (←)" aria-label="上一张">⏮</button>
<button class="control-btn" id="btnPlayPause" title="播放/暂停 (空格)" aria-label="播放/暂停">
<span id="iconPlayPause">⏸</span>
</button>
<button class="control-btn" id="btnNext" title="下一张 (→)" aria-label="下一张">⏭</button>
<button class="control-btn" id="btnFullscreen" title="切换全屏 (F)" aria-label="切换全屏">⛶</button>
<button class="control-btn" id="btnSettings" title="设置" aria-label="设置">⚙</button>
</div>
</main>
<!-- 设置面板(模态框) -->
<div class="modal" id="settingsModal" hidden role="dialog" aria-modal="true" aria-labelledby="settingsTitle">
<div class="modal-backdrop" id="modalBackdrop"></div>
<div class="modal-content">
<header class="modal-header">
<h2 id="settingsTitle">设置</h2>
<button class="close-btn" id="btnCloseSettings" aria-label="关闭">×</button>
</header>
<div class="modal-body">
<!-- 目录列表 -->
<section class="setting-section">
<div class="section-header">
<h3>图片目录</h3>
<button class="primary-btn" id="btnAddDirectory" type="button">+ 添加目录</button>
</div>
<p class="setting-tip">
💡 每次重新加载页面后,浏览器需要您重新授权访问已添加的目录。
</p>
<ul class="directory-list" id="directoryList"></ul>
</section>
<!-- 切换间隔 -->
<section class="setting-section">
<h3>切换间隔</h3>
<div class="form-row">
<input type="range" id="inputInterval" min="500" max="30000" step="500" />
<input type="number" id="inputIntervalNum" min="500" max="30000" step="500" />
<span class="unit">毫秒</span>
</div>
</section>
<!-- 切换动画 -->
<section class="setting-section">
<h3>切换动画</h3>
<div class="form-row">
<select id="selectAnimation">
<option value="none">无(直接切换)</option>
<option value="fade">淡入淡出</option>
<option value="slide">滑动</option>
<option value="zoom">缩放</option>
<option value="flip">翻转</option>
</select>
</div>
</section>
<!-- 动画时长 -->
<section class="setting-section">
<h3>动画时长</h3>
<div class="form-row">
<input type="range" id="inputDuration" min="0" max="3000" step="50" />
<input type="number" id="inputDurationNum" min="0" max="3000" step="50" />
<span class="unit">毫秒</span>
</div>
</section>
<!-- 随机显示 -->
<section class="setting-section">
<h3>随机显示</h3>
<label class="toggle">
<input type="checkbox" id="inputRandom" />
<span class="toggle-slider"></span>
<span class="toggle-text">启用后将以随机顺序展示图片</span>
</label>
</section>
</div>
<footer class="modal-footer">
<button class="secondary-btn" id="btnReloadImages" type="button" title="重新读取所有目录中的图片">
重新加载图片
</button>
<button class="primary-btn" id="btnSaveSettings" type="button">
保存并关闭
</button>
</footer>
</div>
</div>
<script src="config.js"></script>
<script src="main.js"></script>
</body>
</html>