js+css实现类似PowerPoint的ppt在线拖拽可视化设计编辑导出pptx代码

代码语言:html

所属分类:其他

代码描述:js+css实现类似PowerPoint的ppt在线拖拽可视化设计编辑导出pptx代码

代码标签: js css 类似 PowerPoint ppt 在线 拖拽 可视化 设计 编辑 导出 pptx

下面为部分代码预览,完整代码请点击下载或在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>Silky Smooth Web PPT</title>
    
    <!-- Styles -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/tailwindcss.3.4.16.js"></script>
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/all.6.4.0.css">
    
    <!-- Libraries -->
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/interact.min.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/pptxgen.bundle.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jszip.3.10.1.js"></script>

    <style>
        body { font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; overflow: hidden; user-select: none; }
        
        /* Canvas Wrapper */
        #canvas-wrapper {
            transition: transform 0.1s ease-out; /* Zoom transition */
            will-change: transform;
        }

        #slide-stage {
            width: 960px; 
            height: 540px;
            background-color: white;
            box-shadow: 0 20px 50px rgba(0,0,0,0.15);
            position: relative;
            overflow: hidden;
        }

        /* --- 核心流畅度优化 CSS --- */
        .slide-element {
            position: absolute;
            box-sizing: border-box;
            cursor: grab;
            border: 1px solid transparent;
            
            /* 关键:开启硬件加速 */
            will-change: transform, width, height; 
            /* 关键:默认可能有过渡,但必须确保 transforms 是瞬时的 */
            transition: border 0.1s; 
            
            /* 防止拖拽时选中内部文字 */
            touch-action: none; 
        }

        .slide-element:hover {
            border: 1px dashed #3b82f6;
        }

        .slide-element.selected {
            border: 2px solid #3b82f6;
            z-index: 100; 
        }

        /* 拖拽进行时状态 */
        .slide-element.is-dragging {
            cursor: grabbing;
            opacity: 0.9;
            box-shadow: 0 10px 20px rgba(0,0,0,0.2);
            z-index: 999 !important;
            transition: none !important; /* 强制关闭任何过渡 */
        }
        
        /* 调整大小时状态 */
        .slide-element.is-resizing {
            z-index: 999 !important;
            transition: none !important;
        }

        /* Sidebar Thumbnails */
        .slide-thumb {
            width: 160px; height: 90px;
            border: 2px solid transparent;
            cursor: pointer;
            flex-shrink: 0;
            position: relative;
        }
        .slide-thumb.active {
            border-color: #f97316;
            box-shadow: 0 0 0 2px rgba(249, 115, 22, 0.2);
        }
        
        /* UI Scrollbar */
        ::-webkit-scrollbar { width: 6px; height: 6px; }
        ::-webkit-scrollbar-track { background: #f1f1f1; }
        ::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #9ca3af; }
    </style>
</head>
<body class="bg-gray-100 h-screen flex flex-col text-gray-800">

    <!-- Header -->
    <header class="h-14 bg-white border-b border-gray-200 flex items-center px-4.........完整代码请登录后点击上方下载按钮下载查看

网友评论0