vue实现短剧剧本分镜头视频生成无限画布前端代码

代码语言:html

所属分类:其他

代码描述:vue实现短剧剧本分镜头视频生成无限画布前端代码,通过主题生成剧本分镜头,在生成九宫格图片及每个分镜头的描述及高清图生成,最后生成视频合并成完整视频。

代码标签: vue 短剧 剧本 分镜头 视频 生成 无限 画布 前端 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>短剧无限画布创作系统 - 自由节点版</title>
    <!-- 引入 Vue 3 -->
    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
    <style>
        /* 全局样式设定 */
        body, html { margin: 0; padding: 0; overflow: hidden; width: 100vw; height: 100vh; background-color: #1a1a1a; color: #e0e0e0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; user-select: none; }
        
        #app { width: 100%; height: 100%; position: relative; display: flex; flex-direction: column; }
        
        /* 顶部工具栏 */
        .toolbar { position: absolute; top: 15px; left: 50%; transform: translateX(-50%); z-index: 100; background: rgba(30, 30, 30, 0.95); padding: 12px 25px; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,0.6); display: flex; gap: 15px; border: 1px solid #444; backdrop-filter: blur(10px); align-items: center; }
        .toolbar button { background: #3b82f6; color: white; border: none; padding: 10px 18px; border-radius: 6px; cursor: pointer; font-weight: bold; transition: all 0.2s; display: flex; align-items: center; gap: 8px; font-size: 14px; }
        .toolbar button:hover:not(:disabled) { background: #2563eb; transform: translateY(-1px); }
        .toolbar button:disabled { background: #444; color: #777; cursor: not-allowed; }
        .toolbar button.highlight { background: #f59e0b; color: #fff; }
        .toolbar button.highlight:hover:not(:disabled) { background: #d97706; }
        .toolbar button.success { background: #10b981; }
        .toolbar button.success:hover:not(:disabled) { background: #059669; }

        .toolbar-divider { width: 1px; height: 24px; background: #555; margin: 0 5px; }

        /* 画布容器 */
        .canvas-container { flex: 1; position: relative; overflow: hidden; outline: none; cursor: grab; background-image: radial-gradient(#333 1px, transparent 0); background-size: 25px 25px; }
        .canvas-container:active { cursor: grabbing; }
        
        /* 变换层 */
        .canvas-transform { position: absolute; top: 0; left: 0; transform-origin: 0 0; width: 1px; height: 1px; }

        /* SVG 连线层 */
        .svg-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 1; }
        .connection-line { fill: none; stroke: #666; stroke-width: 3px; stroke-linecap: round; transition: stroke 0.3s, stroke-width 0.3s; }
        .connection-line:hover { stroke: #3b82f6; stroke-width: 5px; }

        /* 节点通用样式 */
        .node { position: absolute; width: 280px; background: #252526; border: 2px solid #3e3e42; border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,0.5); display: flex; flex-direction: column; z-index: 10; transition: box-shadow 0.2s, border-color 0.2s; cursor: default; }
        .node.selected { border-color: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,0.3), 0 8px 24px rgba(0,0,0,0.5); z-index: 11; }
        
        .node-header { padding: 12px 15px; background: #333337; border-top-left-radius: 10px; border-top-right-radius: 10px; font-weight: bold; font-size: 14px; display: flex; justify-content: space-between; align-items: center; cursor: move; border-bottom: 1px solid #1e1e1e; }
        .node-header-title { display: flex; align-items: center; gap: 8px; pointer-events: none; }
        
        .delete-btn { background: none.........完整代码请登录后点击上方下载按钮下载查看

网友评论0