121 lines
6.2 KiB
HTML
121 lines
6.2 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>
|
|
<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>
|
|
<!-- 背景图编辑工具 -->
|
|
<div class="toolbar-group bg-tools" id="bgTools">
|
|
<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 class="toolbar-divider"></div>
|
|
<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>
|
|
</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 class="long-press-tip" id="longPressTip">长按屏幕可保存图片</div>
|
|
</div>
|
|
|
|
<input type="file" id="fileInput" accept="image/*" hidden>
|
|
<canvas id="exportCanvas" hidden></canvas>
|
|
|
|
<script src="./js/script.js"></script>
|
|
</body>
|
|
</html>
|