Files
invitation-maker/index.html
Zhukj f64e83e8cd style(工具栏): 调整撤销重做按钮组样式并添加分隔线
- 将撤销重做按钮放入独立容器并设置间距
- 添加左右分隔线样式及不同边距
- 调整保存按钮的尺寸和间距
2026-04-22 14:43:18 +08:00

128 lines
6.6 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>极简邀请函制作</title>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<div class="app">
<!-- 顶部工具栏 -->
<div class="toolbar">
<button class="btn" id="addImageBtn">背景图</button>
<button class="btn" id="addOverlayBtn">层叠图</button>
<button class="btn" id="addTextBtn">文本</button>
<div class="toolbar-divider-v divider-left"></div>
<div class="toolbar-action-group">
<button class="toolbar-btn-icon" id="undoBtn" title="撤销 (Ctrl+Z)">↩</button>
<button class="toolbar-btn-icon" id="redoBtn" title="重做 (Ctrl+Y)">↪</button>
</div>
<div class="toolbar-divider-v divider-right"></div>
<button class="btn btn-primary" id="saveBtn">保存/预览</button>
</div>
<!-- 编辑器工具栏(文本/图片共用) -->
<div class="editor-toolbar" id="editorToolbar">
<!-- 文本编辑工具 -->
<div class="toolbar-group text-tools" id="textTools">
<button class="toolbar-btn" id="lockBtn" title="锁定位置">🔒</button>
<div class="toolbar-divider"></div>
<button class="toolbar-btn" id="boldBtn" title="加粗">B</button>
<button class="toolbar-btn italic" id="italicBtn" title="斜体">I</button>
<div class="toolbar-divider"></div>
<label class="toolbar-label">
<span>颜色</span>
<input type="color" id="colorPicker" value="#000000">
</label>
<div class="toolbar-divider"></div>
<label class="toolbar-label">
<span>字体</span>
<select id="fontPicker">
<option value="-apple-system, BlinkMacSystemFont, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Noto Sans CJK SC, sans-serif">系统默认</option>
<option value="PingFang SC, Microsoft YaHei, Noto Sans CJK SC, sans-serif">苹方/雅黑</option>
<option value="Hiragino Sans GB, Microsoft YaHei, Noto Sans CJK SC, sans-serif">冬青黑体</option>
<option value="SimHei, Microsoft YaHei, Noto Sans CJK SC, sans-serif">黑体</option>
<option value="SimSun, Songti SC, serif">宋体</option>
</select>
</label>
<div class="toolbar-divider"></div>
<label class="toolbar-label">
<span>字号</span>
<div class="roller-picker" id="fontSizePicker">
<div class="roller-arrow roller-up">▲</div>
<div class="roller-value">16</div>
<div class="roller-arrow roller-down">▼</div>
</div>
</label>
</div>
<!-- 图片编辑工具 -->
<div class="toolbar-group image-tools" id="imageTools">
<label class="toolbar-label">
<span>透明度</span>
<input type="range" id="opacitySlider" min="0" max="100" value="100" class="opacity-slider">
<span id="opacityValue">100%</span>
</label>
<div class="toolbar-divider"></div>
<label class="toolbar-label">
<span>旋转</span>
<input type="range" id="rotateSlider" min="-180" max="180" value="0" class="rotate-slider">
<span id="rotateValue">0°</span>
</label>
<div class="toolbar-divider"></div>
<button class="toolbar-btn mirror-btn" id="mirrorHBtn" title="水平镜像">↔</button>
</div>
<!-- 背景图编辑工具 -->
<div class="toolbar-group bg-tools" id="bgTools">
<label class="toolbar-label">
<span>透明度</span>
<input type="range" id="bgOpacitySlider" min="0" max="100" value="100" class="opacity-slider">
<span id="bgOpacityValue">100%</span>
</label>
<div class="toolbar-divider"></div>
<label class="toolbar-label">
<span>缩放</span>
<input type="range" id="bgScaleSlider" min="100" max="300" value="100" class="scale-slider">
<span id="bgScaleValue">100%</span>
</label>
</div>
</div>
<!-- 图片展示区 -->
<div class="canvas-area" id="canvasArea">
<div class="preview image-container empty" id="imageContainer">
<!-- 背景图层 -->
<div class="preview-bg-layer" id="bgLayer">
<img id="bgImage" src="" alt="背景图">
</div>
<!-- 层叠图图层 -->
<div class="overlay-layer" id="overlayLayer"></div>
<!-- 1px 网格线 -->
<div class="grid-lines" id="gridLines"></div>
<!-- 拖拽辅助线 -->
<div class="guide-line guide-horizontal" id="guideH"></div>
<div class="guide-line guide-vertical" id="guideV"></div>
<!-- 输入框图层 -->
<div class="preview-input-layer" id="previewInputLayer">
<!-- 文字输入框1 - 企业 -->
<div class="text-input hidden" id="input1" contenteditable="false" data-placeholder="请输入" style="left: 98px; top: 234.445px; font-weight: bold;"></div>
<!-- 文字输入框2 - 姓名 -->
<div class="text-input hidden" id="input2" contenteditable="false" data-placeholder="请输入" style="left: 98px; top: 276.355px; font-weight: bold;"></div>
<!-- 文字输入框3 - 编号 -->
<div class="text-input hidden" id="input3" contenteditable="false" data-placeholder="请输入" style="left: 98px; top: 319.048px; font-weight: bold;"></div>
</div>
<!-- 提示文字(最上层,层叠图之下) -->
<div class="empty-tip" id="emptyTip">请点击上方「添加图片」按钮上传背景图</div>
</div>
</div>
</div>
<input type="file" id="fileInput" accept="image/*" hidden>
<canvas id="exportCanvas" hidden></canvas>
<script src="./js/script.js"></script>
</body>
</html>