css实现一个食品售卖车行驶带菜单动画效果代码
代码语言:html
所属分类:动画
代码描述:css实现一个食品售卖车行驶带菜单动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @import url("https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@300;400;700&display=swap"); body { display: flex; height: 100vh; justify-content: center; align-items: center; font-family: "Josefin Sans", "Futura"; background: linear-gradient(to bottom, #cef4ec 42.5%, #b0dfd8 42.5%, #b0dfd8 60%, #ccc 60%); transform-style: preserve-3d; perspective: 1050vmin; --time: 0.25s; overflow: hidden; margin: 0; filter: url(#squiggly); animation: squigvision 0.1s linear infinite alternate; cursor: pointer; } @keyframes squigvision { to { filter: url(#squiggly2); } } body svg { position: absolute; } body h1 { transform-style: preserve-3d; transform: translateZ(12.75vmin); position: absolute; top: 0; margin: 0; font-size: 3vmin; width: 90%; text-align: center; letter-spacing: 0.5vmin; line-height: 1.75; color: #fff; font-weight: 900; background-image: linear-gradient(45deg, #e6753e 20%, #b46a7e 20%, #b46a7e 40%, #62ceb9 40%, #62ceb9 60%, #449767 60%, #449767 80%, #f1b84a 80%); background-size: 50vw 100%; background-position: 0vw 50%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: bgmove 5s linear infinite; -webkit-mask: radial-gradient(circle at center, #000 1px, transparent 1px, transparent 2px) 50% 50%/2px 2px; } @keyframes bgmove { to { background-position: 50vw 50%; } } body .menu { width: 19vmin; height: 16vmin; right: 13.75vmin; top: 5vmin; position: absolute; background: #222; border-radius: 0.5vmin; box-shadow: 0 0 0 0.5vmin #f1d0b8; padding: 0.15vmin 0.5vmin; transform-style: preserve-3d; transform: translateZ(12.75vmin); display: grid; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(14, 1fr); grid-column-gap: 0px; grid-row-gap: 0px; } body .menu * { color: #fff; font-size: 0.65vmin; margin: 0; padding: 0; } body .menu * span:last-of-type { font-weight: 900; } body .menu p { display: grid; grid-template-columns: 75% 25%; grid-template-rows: 1fr; grid-column-gap: 0px; grid-row-gap: 0px; } body .menu h2 { grid-column: span 2; font-size: 0.9vmin; text-transform: uppercase; margin-top: 0.25vmin; padding-top: 0.25vmin; position: relative; letter-spacing: 0.25vmin; font-weight: 900; border-top: 0.1vmin solid #666; } body .menu h2:first-of-type { margin-top: 0; border-top: none; } body .menu h2:last-of-type ~ p:last-of-type { grid-column: span 2; grid-template-columns: 1fr 1fr; } body:hover #truck { transform: translateZ(150vmin); } body:active #truck { transform: translateZ(350vmin); } body #truck { z-index: 2; width: 60vmin; height: 40vmin; position: relative; transform-style: preserve-3d; transition: 1s ease-in-out; transform: translateZ(-50vmin); pointer-events: none; } body #truck .inner { animation: spin 5s ease-in-out infinite alternate; transform-style: preserve-3d; position: absolute; width: 100%; height: 100%; left: 0; top: 0; } body #truck .inner:before { transform-style: preserve-3d; backface-visibility: hidden; content: ""; position: absolute; width: 400vw; height: 60vmin; background: linear-gradient(to right, #fff 7.5vmin, #666 7.5vmin, #666 10vmin) 50% 50%/15vmin 2vmin repeat-x, #666; transform: translateX(-50%) rotateX(90deg); bottom: -25vmin; left: -50%; animation: drive 0.15s linear infinite; box-shadow: 0 0 0 5vmin #b3b3b3, 0 -20vh 0 #ccc; } @keyframes drive { to { transform: translateX(calc(-50% - 15vmin)) rotateX(90deg); } } @keyframes spin { 0% { transform: translateZ(15vmin) rotateY(-25deg) rotateX(-5deg) translateX(-10vmin); } 50% { transform: translateZ(0vmin) rotateY(-20deg) rotateX(-0.25deg) translateX(5vmin); } 75% { transform: translateZ(15vmin) rotateY(-25deg) rotateX(-5deg) translateX(-10vmin); } 100% { transform: translateZ(0vmin) rotateY(-20deg) rotateX(-7.5deg) translateX(7.5vmin); } } body #truck .side { transform-style: preserve-3d; position: absolute; width: 100%; height: 30vmin; left: 0; top: 0; transform: translateZ(-12.5vmin); } body #truck .side:before, body #truck .side:after { content: ""; position: absolute; width: 100%; height: 100%; left: 0; top: 0; background: linear-gradient(to bottom, #fefefe 20%, rgba(255, 255, 255, 0.15) 20%, rgba(255, 255, 255, 0.15) 58%, #f19a73 58%), linear-gradient(to right, #fefefe 10%, rgba(255, 255, 255, 0.15) 10%, rgba(255, 255, 255, 0.15) 40%, #fefefe 40%, #fefefe 80%, rgba(255, 255, 255, 0.15) 80%); transform: translateZ(-0.05px); box-shadow: inset 0 -1.5vmin 0 #efefef; } body #truck .side:after { background: linear-gradient(to bottom, #ccc 20%, rgba(255, 255, 255, 0.015) 20%, rgba(255, 255, 255, 0.015) 58%, #ccc 58%), linear-gradient(to right, #ccc 10%, rgba(255, 255, 255, 0.015) 10%, rgba(255, 255, 255, 0.015) 40%, #ccc 40%, #ccc 80%, rgba(255, 255, 255, 0.015) 80%); transform: translateZ(0.05px); } body #truck .side:first-of-type span, body #truck .side:nth-of-type(2) span { transform-style: preserve-3d; position: absolute; width: 9vmin; height: 9vmin; border-radius: 100%; background: #222; bottom: -5vmin; left: 10vmin; .........完整代码请登录后点击上方下载按钮下载查看
网友评论0