You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.9 KiB
82 lines
1.9 KiB
2 years ago
|
<!-- Licensed under a BSD license. See license.html for license -->
|
||
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
|
||
|
<title>Three.js - Responsive Editor</title>
|
||
|
<style>
|
||
|
html, body {
|
||
|
height: 100%;
|
||
|
margin: 0;
|
||
|
font-size: 16pt;
|
||
|
}
|
||
|
#editor {
|
||
|
display: flex;
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
}
|
||
|
#controls {
|
||
|
background: #AAA;
|
||
|
padding: 5px;
|
||
|
}
|
||
|
#c {
|
||
|
width: 100%;
|
||
|
height: 100%;
|
||
|
display: block;
|
||
|
}
|
||
|
.gutter {
|
||
|
background-color: #eee;
|
||
|
background-repeat: no-repeat;
|
||
|
background-position: 50%;
|
||
|
}
|
||
|
.gutter.gutter-horizontal {
|
||
|
cursor: ew-resize;
|
||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==')
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="editor">
|
||
|
<div id="view"><canvas id="c"></canvas></div>
|
||
|
<div id="controls">
|
||
|
<div>
|
||
|
<p>various controls
|
||
|
would appear here</p>
|
||
|
<div>Drag this bar</div>
|
||
|
<div>⇐</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</body>
|
||
|
<script type="importmap">
|
||
|
{
|
||
|
"imports": {
|
||
|
"three": "../../build/three.module.js"
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
<script type="module" src="threejs-responsive.js"></script>
|
||
|
<script src="../3rdparty/split.min.js"></script>
|
||
|
<script type="module">
|
||
|
/* global Split */
|
||
|
|
||
|
// This code is only related to handling the split.
|
||
|
// Our three.js code has not changed
|
||
|
Split(['#view', '#controls'], { // eslint-disable-line new-cap
|
||
|
sizes: [75, 25],
|
||
|
minSize: 100,
|
||
|
elementStyle: (dimension, size, gutterSize) => {
|
||
|
return {
|
||
|
'flex-basis': `calc(${size}% - ${gutterSize}px)`,
|
||
|
};
|
||
|
},
|
||
|
gutterStyle: (dimension, gutterSize) => {
|
||
|
return {
|
||
|
'flex-basis': `${gutterSize}px`,
|
||
|
};
|
||
|
},
|
||
|
});
|
||
|
</script>
|
||
|
</html>
|