css+div实现炫酷三维翻转图文卡片切换悬浮动画交互效果代码
代码语言:html
所属分类:幻灯片
代码描述:css+div实现炫酷三维翻转图文卡片切换悬浮动画交互效果代码
代码标签: css div 炫酷 三维 翻转 图文 卡片 切换 悬浮 动画 交互
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" class="home"> <head> <meta charset="UTF-8"> <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Inter:wght@600;800&family=Xanh+Mono&display=swap'> <style> html { font-size: 1.75vh; } html, body { width: 100%; height: 100%; } body { font-family: "Inter", sans-serif; margin: 0; overflow: hidden; color: #fff; text-align: center; } .scroll { width: 100%; height: 100%; overflow-x: hidden; overflow-y: scroll; -webkit-overflow-scrolling: touch; transform-style: preserve-3d; perspective: 100rem; perspective-origin: calc(50% - 5.5px) 30rem; background: repeating-linear-gradient(-45deg, #313d47, #313d47 0.1rem, #3b4a56 0.1rem, #3b4a56 0.5rem); box-shadow: inset 0 0 1rem #1c2329; } @media (orientation: landscape) { .home .scroll:after { position: absolute; left: 0; top: 0; content: ""; width: 100%; height: 50vh; background: linear-gradient(purple, rgba(255, 255, 255, 0)); mix-blend-mode: soft-light; pointer-events: none; } } *, *:before, *:after { transform-style: preserve-3d; box-sizing: border-box; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); } img { width: 100%; display: block; } h1, h2, h3, h4, h5 { margin: 0; } h3 { font-size: 1.5em; } h2 { display: none; } section { background: radial-gradient(#c1b4aa, #ece8e5); } .title { background: currentColor; font-size: 2em; padding: 1rem; color: #455766; font-weight: 800; text-align: center; box-shadow: inset 0 -0.3rem #1c2329, inset 0 0.3rem #1c2329, 0 -0.3rem currentColor, 0 0.3rem currentColor, 0 3rem 5rem #1c2329, 0 6rem 5rem #1c2329, 0 9rem 5rem #1c2329, 0 12rem 5rem #1c2329; margin: 0 -3rem; } .title:before { width: 200%; content: ""; height: 60rem; transform: rotateX(90deg); position: absolute; left: -50%; transform-origin: bottom; } .title:before { bottom: 4.6rem; background: radial-gradient(#1c2329, #313d47); } .title * { color: #1c2329; } .title h1 { font-size: 1em; } .tags > * { background: rgba(28, 35, 41, 0.1); padding: 0.2rem 0.5rem; border-radius: 1rem; } footer { letter-spacing: 0.1rem; color: #1c2329; background: #455766; padding: 1rem; box-shadow: 0 0 2rem #1c2329; } footer:before { content: ""; height: 0.3rem; top: -0.6rem; background: #455766; width: 100%; position: absolute; left: 0; box-shadow: 0 0 2rem #1c2329; } .back-btn { position: absolute; top: 1rem; left: 1rem; color: #ece8e5; text-decoration: none; line-height: 1; background: rgba(236, 232, 229, 0.1); border-radius: 1rem; gap: 0.5rem; font-family: Consolas; transition: all 0.25s ease-in-out; border: 0.2rem solid rgba(255, 255, 255, 0); } .back-btn:hover { box-shadow: 0 0 0 1px rgba(236, 232, 229, 0.5), inset 0 0 0 2rem rgba(236, 232, 229, 0.5); color: #1c2329; } .link { color: inherit; } ::-webkit-scrollbar { width: 1rem; } ::-webkit-scrollbar-track { background: #1c2329; } ::-webkit-scrollbar-thumb { background: rgba(236, 232, 229, 0.2); border-radius: 0.5rem; border: solid 0.2rem #1c2329; } ::-webkit-scrollbar-thumb:hover { background: rgba(236, 232, 229, 0.5); } .w-100 { width: 100%; } .d-flex { display: flex; } .gap-1 { gap: 1rem; } .gap-2 { gap: 2rem; } .align-items-center { align-items: center; } .card .card-row *:nth-of-type(1), .card2 .card-row *:nth-of-type(1) { flex: 1 1 auto; } .p-05 { padding: 0.4rem; } .px-05 { padding-left: 0.3rem; padding-right: 0.3rem; } .px-10 { padding-left: 0.7rem; padding-right: 0.7rem; } .pt-10 { padding-top: 0.7rem; } .py-05 { padding-top: 0.3rem; padding-bottom: 0.3rem; } .py-10 { padding-top: 0.7rem; padding-bottom: 0.7rem; } mt-05 { margin-top: 0.3rem; } .colour-yellow .bg-current { background: #f8e703; } .colour-yellow { color: #f8e703; } .colour-red { color: red; } .colour-orange { color: orange; } .colour-magenta { color: fuchsia; } .colour-purple { color: purple; } .colour-indigo { color: indigo; } .pos-abs { position: absolute; top: 0; left: 0; } .z-1 { z-index: 1; position: relative; } .m-10 { margin: 1rem; } .pointer { cursor: pointer; } .border { border: 0.3rem solid #1c2329; } .text-left { text-align: left; } .flex-reverse { flex-direction: row-reverse; } .flex-column { flex-direction: column; } .font-24 { font-size: 1.8rem; } .justify-content-center { justify-content: center; } sig { right: 0; bottom: 0; width: 6.9em; transform: skewX(10deg) scaleY(0.45) rotate(2deg); margin: auto; z-index: 2; } sig, sig * { height: 9.25em; overflow: hidden; border-radius: 0.5em; } sig, sig:before, sig *:before { position: absolute; left: 0; top: 0; } sig:before, sig *:before { width: 5em; height: 5em; background: currentColor; transform: translate3d(-2.5em, 0, 0) rotate(-45deg); box-shadow: -3em 3em 0 0 currentColor; border-radius: 0.5em 2em 0.5em 2em; content: ""; } sig * { width: 5em; transform: translate3d(3.75em, 0, 0) scaleY(0.95); display: block; } sig *:before { transform: translate3d(-3em, -2em, 0) rotate(-45deg); box-shadow: -3em 3em 0 0 currentColor, -6em 6em 0 0 currentColor; border-radius: 0.5em; } .page-sig { position: absolute; top: 0.2rem; right: 25px; width: 10em; height: 10em; font-size: 0.3rem; color: #313d47; mix-blend-mode: color-dodge; } @media (orientation: portrait) { .page-sig { top: 0.1rem; right: 1.2rem; } } .page-sig:hover { color: #d6cec8; } .card, .card2 { background: #fff; border-radius: 1rem; transform-origin: center; text-align: left; transition: all 0.5s ease-in-out; } .card .front, .card2 .front { font-weight: 600; transform: translate3d(0, 0, 0.1rem); box-shadow: inset 0 0 0 0.75rem #ece8e5; padding: 0.75rem; } .card .front, .card .back, .card2 .front, .card2 .back { border-radius: 1rem; overflow: hidden; } .card .front:after, .card .back:after, .card2 .front:after, .card2 .back:after { position: absolute; left: 0; top: 0; content: ""; height: 120%; width: 400%; background: linear-gradient(75deg, #1c2329, rgba(28, 35, 41, 0.25) 50%, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.25), rgba(255, 255, 255, 0), rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.25) 75%, #fff); opacity: 0.5; z-index: 1; pointer-events: none; transform: translate3d(-37rem, 0, 0); } .card .back, .card .back > div, .card2 .back, .card2 .back > div { height: 100%; width: 100%; } .card .back, .card2 .back { transform: translate3d(0, 0, -0.1rem) rotateY(180deg); border-radius: 1rem; font-size: 0.8rem; padding: 0.5rem; background: linear-gradient(20deg, #ece8e5, #fff, #ece8e5); display: flex; align-content: stretch; position: absolute; left: 0; top: 0; } .card .back > div, .card2 .back > div { border-radius: 0.5rem; background: linear-gradient(-80deg, #dfd003, #fdee31, #dfd003); overflow: hidden; } .card .back > div:before, .card .back > div:after, .card2 .back > div:before, .card2 .back > div:after { content: ""; position: absolute; left: 0; top: 0; } .card .back > div:after, .card2 .back > div:after { width: 100%; height: 100%; background: linear-gradient(45deg, currentColor 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 75%, currentColor 75%, currentColor), linear-gradient(-45deg, currentColor 25%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 75%, currentColor 75%, currentColor); background-size: 1rem 1rem; } .card sig, .card2 sig { filter: brightness(0.8); } .card .photo, .card2 .photo { width: 100%; aspect-ratio: 1/1; overflow: hidden; } .card .card-row { color: #1c2329; } .card .border-bottom { border-bottom: 0.3rem solid #1c2329; } .card h1 { margin-bottom: 0.5rem; } .card h2 { font-size: 1.5em; } .card .photo > * { position: absolute; left: 0; top: 0; height: 100%; width: 100%; transform: translate3d(0, 0, -2rem) rotateY(0deg); perspective: 100rem; } .card .photo .l1 { transform: translate3d(0, 0, -10rem) scale(1.2) rotateX(-15deg); } .card .photo .l2 { transform: translate3d(0, 0, -20rem) scale(1.5); } .card .photo .photo-bg { position: absolute; left: -100%; top: -100%; height: 300%; width: 300%; background: #b5b5b3; transform: translate3d(0, 0, -30rem) scale(2); background-image: url("../images/emptybackfade.png"); } .card { animation: rotate 3s 1s forwards; } .photo > * { animation: rotate2 3s 1s forwards; } .front:after, .back:after { animation: shine1 3s 1s forwards; } .shadow { animation: shadowhover 3s 1s linear forwards; } @keyframes nothing { 50% { transform: translate3d(0, 0, 0); } } @keyframes rotate2 { 33% { transform: translate3d(10rem, 0, -10rem) rotateY(-45deg) scale(1.2); } 50% { transform: translate3d(-10rem, 0, 0) rotateY(45deg); } } @keyframes rotate { 50% { transform: translate3d(0, -5, 12.5rem) scale(0.75) rotateY(-200deg); } 100% { transform: translate3d(0, 0, 25rem) scale(0.72) rotateY(-360deg); /* transform: translate3d(0,$y,$z) scale(.72) rotateY(-180deg);*/ } } @keyframes shine1 { 17%, 45% { transform: translate3d(0, 0, 0); } 21%, 46% { transform: translate3d(-70rem, 0, 0); } 100% { transform: translate3d(-55rem, 0, 0); } } .shadow, .other-shadow { position: absolute; width: 100%; height: 100%; } .shadow:after, .other-shadow:after { content: ""; width: 100%; height: 100%; position: absolute; left: -5rem; top: 5rem; background: #000; transform: translate3d(0, 0, -10rem); border-radius: 2rem; opacity: 0.8; filter: blur(3rem); } .home #card1cb:checked ~ .carousel > div > #card1 .shadow, .home #card1cb:checked ~ .carousel > div > #card1 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card1cb:checked ~ .carousel > div > #card1 .shadow:before, .home #card1cb:checked ~ .carousel > div > #card1 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card2cb:checked ~ .carousel > div > #card2 .shadow, .home #card2cb:checked ~ .carousel > div > #card2 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card2cb:checked ~ .carousel > div > #card2 .shadow:before, .home #card2cb:checked ~ .carousel > div > #card2 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card3cb:checked ~ .carousel > div > #card3 .shadow, .home #card3cb:checked ~ .carousel > div > #card3 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card3cb:checked ~ .carousel > div > #card3 .shadow:before, .home #card3cb:checked ~ .carousel > div > #card3 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card4cb:checked ~ .carousel > div > #card4 .shadow, .home #card4cb:checked ~ .carousel > div > #card4 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card4cb:checked ~ .carousel > div > #card4 .shadow:before, .home #card4cb:checked ~ .carousel > div > #card4 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card5cb:checked ~ .carousel > div > #card5 .shadow, .home #card5cb:checked ~ .carousel > div > #card5 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card5cb:checked ~ .carousel > div > #card5 .shadow:before, .home #card5cb:checked ~ .carousel > div > #card5 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card6cb:checked ~ .carousel > div > #card6 .shadow, .home #card6cb:checked ~ .carousel > div > #card6 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card6cb:checked ~ .carousel > div > #card6 .shadow:before, .home #card6cb:checked ~ .carousel > div > #card6 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card7cb:checked ~ .carousel > div > #card7 .shadow, .home #card7cb:checked ~ .carousel > div > #card7 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card7cb:checked ~ .carousel > div > #card7 .shadow:before, .home #card7cb:checked ~ .carousel > div > #card7 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card8cb:checked ~ .carousel > div > #card8 .shadow, .home #card8cb:checked ~ .carousel > div > #card8 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card8cb:checked ~ .carousel > div > #card8 .shadow:before, .home #card8cb:checked ~ .carousel > div > #card8 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card9cb:checked ~ .carousel > div > #card9 .shadow, .home #card9cb:checked ~ .carousel > div > #card9 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card9cb:checked ~ .carousel > div > #card9 .shadow:before, .home #card9cb:checked ~ .carousel > div > #card9 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card10cb:checked ~ .carousel > div > #card10 .shadow, .home #card10cb:checked ~ .carousel > div > #card10 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card10cb:checked ~ .carousel > div > #card10 .shadow:before, .home #card10cb:checked ~ .carousel > div > #card10 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card11cb:checked ~ .carousel > div > #card11 .shadow, .home #card11cb:checked ~ .carousel > div > #card11 .other-shadow { margin: auto; height: 50rem; width: 30rem; left: 10rem; right: 0; filter: blur(3rem); transform-origin: 100% 100%; transform-style: flat; transform: translate3d(-15rem, 0, -35rem) rotateX(90deg) skewX(30deg) scaleX(1.5); transition: all 0.5s ease-in-out; bottom: -16.1rem; } .home #card11cb:checked ~ .carousel > div > #card11 .shadow:before, .home #card11cb:checked ~ .carousel > div > #card11 .other-shadow:before { content: ""; width: 100%; height: 100%; position: absolute; left: 0; top: 0; background: linear-gradient(rgba(255, 255, 255, 0), #000); border-radius: 2rem; transform: translate3d(0, 0, -35rem); opacity: 0; } .home #card12cb:checked ~ .carousel > div > #card12 .shadow, .home #card12cb:checked ~ .carousel > div > #card12 .other-shadow { margin: auto; height: 50rem; widt.........完整代码请登录后点击上方下载按钮下载查看
网友评论0