vue3实现可视化场景动画制作编辑生成json代码
代码语言:html
所属分类:其他
代码描述:vue3实现可视化场景动画制作编辑生成json代码
代码标签: vue3 可视化 场景 动画 制作 编辑 生成 json 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 3 Animation Scene Editor</title>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue3.0.5.js"></script>
<style>
body { font-family: Arial, sans-serif; margin: 0; padding: 0; background-color: #f4f4f4; display: flex; height: 100vh; }
.sidebar { width: 250px; background-color: #e9e9e9; padding: 15px; overflow-y: auto; border-right: 1px solid #ccc; }
.main-content { flex-grow: 1; display: flex; flex-direction: column; }
.editor-area { flex-grow: 1; padding: 15px; display: flex; gap: 15px; overflow: hidden;}
.properties-panel { width: 350px; background-color: #f0f0f0; padding: 15px; overflow-y: auto; border-left: 1px solid #ccc; }
.preview-area { flex-grow: 1; background-color: #fff; border: 1px solid #ccc; position: relative; overflow: auto; }
.json-output-area { height: 200px; background-color: #333; color: #fff; padding: 10px; overflow-y: auto; font-family: monospace; }
.json-output-area pre { white-space: pre-wrap; word-wrap: break-word; }
.list-item { padding: 8px; margin-bottom: 5px; background-color: #fff; border: 1px solid #ddd; cursor: pointer; border-radius: 3px; }
.list-item.selected { background-color: #d4e6ff; border-color: #a8c7f0; }
.list-item:hover { background-color: #f0f0f0; }
button { padding: 8px 12px; margin-top: 5px; margin-right: 5px; background-color: #007bff; color: white; border: none; border-radius: 3px; cursor: pointer; }
button:hover { background-color: #0056b3; }
button.danger { background-color: #dc3545; }
button.danger:hover { background-color: #c82333; }
h3, h4 { margin-top: 0; margin-bottom: 10px; color: #333; }
.form-group { margin-bottom: 15px; }
.form-group label { display: block; margin-bottom: 5px; font-weight: bold; }
.form-group input[type="text"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
width: calc(100% - 12px);
padding: 6px;
border: 1px solid #ccc;
border-radius: 3px;
box-sizing: border-box;
}
.preview-element {
position: absolute;
border: 1px dashed #aaa;
padding: 5px;
font-size: 12px;
background-color: rgba(0, 123, 255, 0.1);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
text-align: center;
box-sizing: border-box;
}
.preview-element.selected {
border-color: #007bff !important;
border-width: 2px !important;
z-index: 10; /* Bring selected to front */
}
.preview-element img, .preview-element svg { max-width: 100%; max-height: 100%; object-fit: contain; }
.inline-inputs label { margin-right: 5px;}
.inline-inputs input { width: 60px !important; margin-right: 10px;}
</style>
</head>
<body>
<div id="app" style="display: flex; width: 100%; height: 100%;">
<!-- Sidebar for Scenes & Global Settings -->
<div class="sidebar">
<h3>Global Settings</h3>
<div class="form-group">
<label for="canvasWidth">Canvas Width:</label>
<input type="number" id="canvasWidth" v-model.number="config.canvas.width">
</div>
<div class="form-group">
<label for="canvasHeight">Canvas Height:</label>
<input type="number" id="canvasHeight" v-model.number="config.canvas.height">
</div>
<div class="form-group">
<label for="canvasBgColor">Default BG Color:<.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0