three打造混凝土高楼林立的城市效果代码
代码语言:html
所属分类:三维
代码描述:three打造混凝土高楼林立的城市效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<html lang="en"><head> <meta charset="UTF-8"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Hind:wght@400;700&display=swap"> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { font-size: calc(16px + (24 - 16) * (100vw - 320px) / (2560 - 320)); --bg: #737a8c; --buttonBg: #2762f3; --buttonHoverBg: #0c48db; --formBg: #fff; --inputBorder: #abafba; --inputBg: #fff; --inputDisableBg: #e3e4e8; --pColor: #17181c; } aside { background: var(--formBg); box-shadow: 0 0 0.25em hsla(223,10%,10%,0.5); border-radius: 0.375em 0.375em 0 0; position: fixed; bottom: 0; left: 1.25em; max-width: 17.5em; width: calc(100% - 2.5em); transform: translateY(100%); transition: transform 0.3s ease-in-out; } body, button, input { color: var(--pColor); font: 1em/1.5 "Hind", -apple-system, sans-serif; } body, .upload-btn { overflow: hidden; } button:hover, button:focus, .upload-btn input[type=file]:hover + button, .upload-btn input[type=file]:focus + button { background: var(--buttonHoverBg); } button, .upload-btn input[type=file], .upload-btn input[type=file]::-webkit-file-upload-button { cursor: pointer; } button, input { display: block; width: 100%; -webkit-appearance: none; -moz-appearance: none; appearance: none; } button { background: var(--buttonBg); border-radius: 0.375em; color: #fff; margin-bottom: 1.5em; padding: 0.75em 1em; transition: background 0.1s linear; } button:focus { outline: 0; } form { padding: 1.5em 1.5em 0 1.5em; position: relative; } input { background: var(--inputBg); border-radius: 0.25em; box-shadow: 0 0 0 1px var(--inputBorder) inset; padding: 0.75em; } input:disabled { background: var(--inputDisableBg); cursor: not-allowed; text-overflow: ellipsis; } label { display: inline-block; font-weight: bold; } .aside-toggle, .aside-toggle:hover, .aside-toggle:focus { background-color: var(--formBg); } .aside-toggle { border-radius: 0.375em 0.375em 0 0; margin: 0; padding: 0.25em 1em; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); transition: none; width: 4.5em; height: 1.5em; } .aside-toggle:before { border-left: 0.5em solid transparent; border-right: 0.5em solid transparent; border-bottom: 0.5em solid; color: var(--pColor); content: ""; display: block; position: absolute; top: 33%; left: calc(50% - 0.5em); width: 0; height: 0; transition: color 0.1s linear; } .aside-toggle:hover:before, .aside-toggle:focus:before { color: var(--buttonBg); } .aside-open { transform: translateY(0%); } .aside-open .aside-toggle:before { border-bottom: 0; border-top: 0.5em solid; } .sr { clip: rect(1px,1px,1px,1px); overflow: hidden; position: absolute; } .upload-btn, .upload-btn input[type=text], .upload-btn input[type=file] + button { margin-bottom: 0.75em; } .upload-btn { display: flex; justify-content: space-between; position: relative; } .upload-btn input[type=text] { width: calc(62.5% - 0.375em); } .upload-btn input[type=file], .upload-btn input[type=file] + button { width: calc(37.5% - 0.375em); } .upload-btn input[type=file] { position: absolute; opacity: 0; top: 0; left: 0; height: 3em; } .upload-btn input[type=file] + button svg { display: block; margin: auto; width: 1.5em; height: 1.5em; } .upload-btn input[type=file] + button path { fill: #fff; } /* Dark theme */ @media (prefers-color-scheme: dark) { :root { --formBg: #17181c; --inputBg: #2e3138; --inputDisableBg: #2e3138; --inputBorder: #5c6270; --pColor: #e3e4e8; } } </style> </head> <body><canvas width="498" height="659" style="display: block; width: 498px; height: 659px;"></canvas> <aside class="aside-open"> <form action=""> <button id="aside-btn" class="aside-toggle aside-toggle-open" type="button"> <span class="sr">Toggle Panel</span> </button> <label for="img_upload">Image</label> <div class="upload-btn"> <input id="img_upload" name="img_upload" type="file" accept="image/*"> <button for="img_upload" type="button" tabindex="-1" title="Upload"> <svg viewBox="0 0 512 512" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="m182.461 155.48 49.539-49.539v262.059a24 24 0 0 0 48 0v-262.059l49.539 49.539a24 24 0 1 0 33.941-33.941l-90.509-90.51a24 24 0 0 0 -33.942 0l-90.509 90.51a24 24 0 1 0 33.941 33.941z"></path> <path d="m464 232a24 24 0 0 0 -24 24v184h-368v-184a24 24 0 0 0 -48 0v192a40 40 0 0 0 40 40h384a40 40 0 0 0 40-40v-192a24 24 0 0 0 -24-24z"></path> </svg> </button> <input id="img_name" name="img_name" type="text" placeholder="No file selected" disabled=""> </div> <button id="reset-btn" type="button">Reset</button> </form> </aside> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/three.126.js"></script> <script> window.addEventListener("DOMContentLoaded",app); THREE.OrbitControls = function ( object, domElement ) { this.object = object; this.domElement = ( domElement !== undefined ) ? domElement : document; // Set to false to disable this control this.enabled = true; // "target" sets the location of focus, where the object orbits around this.target = new THREE.Vector3(); // How far you can dolly in and out ( PerspectiveCamera only ) this.minDistance = 0; this.maxDistance = Infinity; // How far you can zoom in and out ( OrthographicCamera only ) this.minZoom = 0; this.maxZoom = Infinity; // How far you can orbit vertically, upper and lower limits. // Range is 0 to Math.PI radians. this.minPolarAngle = 0; // radians this.maxPolarAngle = Math.PI; // radians // How far you can orbit horizontally, upper and lower limits. // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ]. this.minAzimuthAngle = - Infinity; // radians this.maxAzimuthAngle = Infinity; // radians // Set to true to enable damping (inertia) // If damping is enabled, you must call controls.update() in your animation loop this.enableDamping = false; this.dampingFactor = 0.05; // This option actually enables dollying in and out; left as "zoom" for backwards compatibility. // Set to false to disable zooming this.enableZoom = true; this.zoomSpeed = 1.0; // Set to false to disable rotating this.enableRotate = true; this.rotateSpeed = 1.0; // Set to false to disable panning this.enablePan = true; this.panSpeed = 1.0; this.screenSpacePanning = false; // if true, pan in screen-space this.keyPanSpeed = 7.0; // pixels moved per arrow key push // Set to true to automatically rotate around the target // If auto-rotate is enabled, you must call controls.update() in your animation loop this.autoRotate = false; this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60 // Set to false to disable use of the keys this.enableKeys = true; // The four arrow keys this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }; // Mouse buttons this.mous.........完整代码请登录后点击上方下载按钮下载查看
网友评论0