AI Slides Generator
AI幻灯片生成器
← 返回工具箱

✨ 创建新演示文稿

选择模板、配色和幻灯片数量,快速开始制作专业演示文稿

📊
商务报告
季度汇报、年度总结
🚀
产品发布
新品发布、功能介绍
📚
教育培训
课程讲义、培训材料
💡
创业路演
融资路演、商业计划
⚙️
技术分享
技术方案、架构设计
5快速演示
10标准演示
15详细演示
20完整演示
+ 添加幻灯片
1 / 1
`; const blob = new Blob([exportHtml], { type: 'text/html' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = filename; a.click(); URL.revokeObjectURL(url); closeExportModal(); showToast('已导出:' + filename, 'success'); } // ===== Toast ===== function showToast(message, type = 'info') { const container = document.getElementById('toastContainer'); const toast = document.createElement('div'); toast.className = 'toast ' + type; const icons = { success: '✅', error: '❌', info: 'ℹ️' }; toast.innerHTML = `${icons[type] || 'ℹ️'} ${message}`; container.appendChild(toast); setTimeout(() => { toast.style.opacity = '0'; toast.style.transform = 'translateX(20px)'; setTimeout(() => toast.remove(), 300); }, 3000); } // ===== Keyboard Shortcuts ===== document.addEventListener('keydown', (e) => { const overlay = document.getElementById('presentationOverlay'); const isPresenting = overlay.classList.contains('active'); if (isPresenting) { if (e.key === 'ArrowRight' || e.key === ' ' || e.key === 'Enter') { e.preventDefault(); presNav(1); } else if (e.key === 'ArrowLeft' || e.key === 'Backspace') { e.preventDefault(); presNav(-1); } else if (e.key === 'Escape') { exitPresentation(); } else if (e.key === 'Home') { presIndex = 0; renderPresSlide(); } else if (e.key === 'End') { presIndex = slides.length - 1; renderPresSlide(); } return; } // Editor shortcuts if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || e.target.tagName === 'SELECT') return; if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') { if (currentSlideIndex > 0) { currentSlideIndex--; renderSlideList(); renderSlidePreview(); } } else if (e.key === 'ArrowDown' || e.key === 'ArrowRight') { if (currentSlideIndex < slides.length - 1) { currentSlideIndex++; renderSlideList(); renderSlidePreview(); } } else if (e.key === 'F5' || (e.key === 'p' && (e.ctrlKey || e.metaKey))) { e.preventDefault(); startPresentation(); } else if (e.key === 'n' && (e.ctrlKey || e.metaKey)) { e.preventDefault(); addSlide(); } }); // ===== Click outside modal to close ===== document.getElementById('exportModal').addEventListener('click', (e) => { if (e.target === document.getElementById('exportModal')) closeExportModal(); }); // ===== Auto-save to localStorage ===== function autoSave() { try { const data = { slides, currentSlideIndex, selectedTemplate, selectedTheme, topic: document.getElementById('topicInput')?.value || '' }; localStorage.setItem('ai-slides-data', JSON.stringify(data)); } catch(e) {} } function autoLoad() { try { const saved = localStorage.getItem('ai-slides-data'); if (saved) { const data = JSON.parse(saved); if (data.slides && data.slides.length > 0) { if (confirm('发现上次编辑的演示文稿,是否恢复?')) { slides = data.slides; currentSlideIndex = data.currentSlideIndex || 0; selectedTheme = data.selectedTheme || 'indigo'; selectedTemplate = data.selectedTemplate || 'business'; applyTheme(); document.getElementById('themeSelect').value = selectedTheme; document.getElementById('setupScreen').classList.add('hidden'); document.getElementById('editorContainer').classList.add('active'); renderSlideList(); renderSlidePreview(); showToast('已恢复上次编辑的演示文稿', 'success'); return true; } } } } catch(e) {} return false; } // Auto-save every 30 seconds setInterval(autoSave, 30000); // Try to load saved data on page load window.addEventListener('DOMContentLoaded', () => { autoLoad(); });