nav { filter:-shadow(0.25rem 0.25rem 0.5rem #0005); width:100%; max-width:14rem; } @keyframes firstShow { 0%,100% { transform:perspective(1000px) translate3d(0,0,0em); } 50% { transform:perspective(1000px) translate3d(0,0,3em); } }@keyframes show { 0% { opacity:0; } 100% { opacity:1; } }ul { position:relative; aperspective:1000px; list-style:none; padding-left:0; box-sizing:border-box; border-radius:1rem; transform-style:preserve-3d; perspective:1000px; font:lighter 1rem Helvetica,sans-serif; li { height:3rem; display:flex; background:linear-gradient(#00000005,#0000),#fff; aborder-bottom:1px solid #0001; abackground-clip:padding-box; box-shadow:inset 0 0 1rem -0.5rem #0002; transition:transform 0.35s,box-shadow 0.35s,background 0.35s; transform:translate3d(0,0,0); opacity:0; animation:firstShow 0.5s ease-in-out,show 0.15s linear forwards; &:nth-child(1) { animation-delay:0.50s; } &:nth-child(2) { animation-delay:0.60s; } &:nth-child(3) { animation-delay:0.70s; } &:nth-child(4) { animation-delay:0.80s; } &:nth-child(5) { animation-delay:0.90s; } &:nth-child(6) { animation-delay:1.00s; } &:nth-child(7) { animation-delay:1.10s; } &:nth-child(8) { animation-delay:1.20s; } &:nth-child(9) { animation-delay:1.30s; } &:first-child { border-radius:1rem 1rem 0 0; } &:last-child { border-radius:0 0 1rem 1rem; } &:hover,&:focus-within { transform:translate3d(0,0,3rem); } &:hover + &,&:has(+ &:focus-within),&:focus + &,&:has(+ &:focus-within) { box-shadow:inset 0 1rem 1rem -1rem #0003; transform:translate3d(0,0,2rem); } &:has(+ &:hover),&:has(+ &:focus-within) { box-shadow:inset 0 -1rem 1rem -1rem #0003; } &:hover + & + &,&:focus-within + & + & { box-shadow:inset 0 1rem 0.5rem -0.75rem #0002; } &:has(+ & + &:hover),&:has(+ & + &:focus-within) { box-shadow:inset 0 -1rem 0.5rem -0.75rem #0002; } }h2,a { font-size:0.9rem; display:flex; align-items:center; flex:1; padding:0 1rem; text-decoration:none; color:#000; } h2 { font-size:1rem; font-weight:400; } i { margin-right:0.25em; width:1rem; } }@media (prefers-reduced-motion) { nav * { transition-duration:0s !important; animation-duration:0s !important; } }/* demo */ body { aperspective:1000px; position:relative; margin:0; min-height:100vh; overflow:clip; display:grid; place-items:center; transition:background 1s; background:#fff; }
此效果由纯html/css实现,代码简单整洁,方便理解,动画炫酷简洁,便于应用、扩展,开箱即用注:代码中的字体图标需自行下载修改