div+css实现一个三维3d店铺门店三维模型旋转动画效果代码
代码语言:html
所属分类:三维
代码描述:div+css实现一个三维3d店铺门店三维模型旋转动画效果代码,无js代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <style> body { margin: 0; height: 100vh; background: linear-gradient(#9cf, #69c); perspective: 1000px; } @keyframes rotateDrawing { 0% { transform: translate(-50%, -50%) translateZ(-20vmin) rotateY(0deg); } 100% { transform: translate(-50%, -50%) translateZ(-20vmin) rotateY(-360deg); } } .canvas { animation: rotateDrawing 15s linear infinite; width: 70vmin; height: 75vmin; abackground: #f002; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) translateZ(-20vmin) rotate3d(0, 1, 0, -0deg); transform-style: preserve-3d; } .cube { --h: 0deg; --s: 50%; --l: 50%; --t: 0; background: hsl(var(--h), var(--s), var(--l)); position: absolute; transform: translateZ(calc(var(--t) * -1)); transform-style: preserve-3d; } .cube::before, .cube::after { content: ""; position: absolute; top: 0; left: 0; width: var(--d); height: 100%; background: hsl(var(--h), var(--s), calc(var(--l) * 0.8)); transform: rotateY(-90deg); transform-origin: 0 50%; } .cube::after { left: auto; right: 0; transform-origin: 100% 50%; transform: rotateY(90deg); } .cube > div { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: hsl(var(--h), var(--s), var(--l)); transform: translate3d(0, 0, var(--d)); transform-style: preserve-3d; } .cube > div::before, .cube > div::after { content: ""; display: block; position: absolute; top: 0; left: 0; background: hsl(var(--h), var(--s), calc(var(--l) * 1.15)); width: 100%; height: var(--d); transform: rotateX(-90deg); transform-origin: 50% 0; } .cube > div::after { top: auto; bottom: 0; transform: rotateX(90deg); transform-origin: 50% 100%; background: hsl(var(--h), var(--s), calc(var(--l) * 0.6)); } /* drawing */ .canvas div { position: absolute; transform-style: preserve-3d; } .step { --s: 10%; --l: 80%; --d: 15vmin; --t: 2vmin; width: 29vmin; height: 4vmin; bottom: 0; right: 3vmin; } .step > div::before { background: linear-gradient(hsl(var(--h), var(--s), calc(var(--l) * 1.15)) calc(99% - 2vmin), #444 0, #000 99%, hsl(var(--h), var(--s), calc(var(--l) * 1.15)) 0) } .door { width: 25vmin; height: 50vmin; bottom: 4vmin; right: 5vmin; } .door .cube { --h: 20deg; --s: 40%; --l: 40%; --d: 4vmin; --t: 2vmin; } .frame-top { width: 100%; height: 2vmin; } .frame-side { width: 2vmin; height: 100%; } .frame-side + .frame-side { right: 0; } .door .door-board { --d: 2vmin; --t: 2vmin; top: 2vmin; left: 2vmin; width: calc(100% - 4vmin); height: calc(100% - 2vmin); transform: translateZ(calc(-0.5 * var(--t))) rotateY(60deg) ; transform-origin: 0% 50%; background: linear-gradient(#777 0 0) 50% 34% / 20% 1%, repeating-linear-gradient(#ddd 0 7%, #0000 0 15%) 50% 38% / 30% 6%, linear-gradient(#fff 0 0) 50% 36% / 40% 10%, linear-gradient(#74.........完整代码请登录后点击上方下载按钮下载查看
网友评论0