纯css实现翻书动画特效
代码语言:html
所属分类:动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> Pure CSS Book Loader</title> <style> .book { --color: #fff; --duration: 6.8s; width: 32px; height: 12px; position: relative; margin: 32px 0 0 0; zoom: 1.5; } .book .inner { width: 32px; height: 12px; position: relative; -webkit-transform-origin: 2px 2px; transform-origin: 2px 2px; -webkit-transform: rotateZ(-90deg); transform: rotateZ(-90deg); -webkit-animation: book var(--duration) ease infinite; animation: book var(--duration) ease infinite; } .book .inner .left, .book .inner .right { width: 60px; height: 4px; top: 0; border-radius: 2px; background: var(--color); position: absolute; } .book .inner .left:before, .book .inner .right:before { content: ''; width: 48px; height: 4px; border-radius: 2px; background: inherit; position: absolute; top: -10px; left: 6px; } .book .inner .left { right: 28px; -webkit-transform-origin: 58px 2px; transform-origin: 58px 2px; -webkit-transform: rotateZ(90deg); transform: rotateZ(90deg); -webkit-animation: left var(--duration) ease infinite; animation: left var(--duration) ease infinite; } .book .inner .right { left: 28px; -webkit-transform-origin: 2px 2px; transform-origin: 2px 2px; -webkit-transform: rotateZ(-90deg); transform: rotateZ(-90deg); -webkit-animation: right var(--duration) ease infinite; animation: right var(--duration) ease infinite; } .book .inner .middle { width: 32px; height: 12px; border: 4px solid var(--color); border-top: 0; border-radius: 0 0 9px 9px; -webkit-transform: translateY(2px); transform: translateY(2px); } .book ul { margin: 0; padding: 0; list-style: none; position: absolute; left: 50%; top: 0; } .book ul li { height: 4px; border-radius: 2px; -webkit-transform-origin: 100% 2px; transform-origin: 100% 2px; width: 48px; right: 0; top: -10px; position: absolute; background: var(--color); -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); -webkit-animation-duration: var(--duration); animation-duration: var(--duration); -webkit-animation-timing-function: ease; animation-timing-function: ease; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .book ul li:nth-child(0) { -webkit-animation-name: page-0; animation-name: page-0; } .book ul li:nth-child(1) { -webkit-animation-name: page-1; animation-name: page-1; } .book ul li:nth-child(2) { -webkit-animation-name: page-2; animation-name: page-2; } .book ul li:nth-child(3) { -webkit-animation-name: page-3; animation-name: page-3; } .book ul li:nth-child(4) { -webkit-animation-name: page-4; animation-name: page-4; } .book ul li:nth-child(5) { -webkit-animation-name: page-5; animation-name: page-5; } .book ul li:nth-child(6) { -webkit-animation-name: page-6; animation-name: page-6; } .book ul li:nth-child(7) { -webkit-animation-name: page-7; animation-name: page-7; } .book ul li:nth-child(8) { -webkit-animation-name: page-8; animation-name: page-8; } .book ul li:nth-child(9) { -webkit-animation-name: page-9; animation-name: page-9; } .book ul li:nth-child(10) { -webkit-animation-name: page-10; animation-name: page-10; } .book ul li:nth-child(11) { -webkit-animation-name: page-11; animation-name: page-11; } .book ul li:nth-child(12) { -webkit-animation-name: page-12; animation-name: page-12; } .book ul li:nth-child(13) { -webkit-animation-name: page-13; animation-name: page-13; } .book ul li:nth-child(14) { -webkit-animation-name: page-14; animation-name: page-14; } .book ul li:nth-child(15) { -webkit-animation-name: page-15; animation-name: page-15; } .book ul li:nth-child(16) { -webkit-animation-name: page-16; animation-name: page-16; } .book ul li:nth-child(17) { -webkit-animation-name: page-17; animation-name: page-17; } .book ul li:nth-child(18) { -webkit-animation-name: page-18; animation-name: page-18; } @-webkit-keyframes page-0 { 4% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 13%, 54% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 63% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-0 { 4% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 13%, 54% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 63% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-1 { 5.86% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 14.74%, 55.86% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 64.74% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-1 { 5.86% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 14.74%, 55.86% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 64.74% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-2 { 7.72% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 16.48%, 57.72% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 66.48% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-2 { 7.72% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 16.48%, 57.72% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 66.48% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-3 { 9.58% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 18.22%, 59.58% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 68.22% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-3 { 9.58% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 18.22%, 59.58% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 68.22% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-4 { 11.44% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 19.96%, 61.44% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 69.96% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-4 { 11.44% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 19.96%, 61.44% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 69.96% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-5 { 13.3% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 21.7%, 63.3% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 71.7% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-5 { 13.3% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 21.7%, 63.3% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 71.7% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-6 { 15.16% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 23.44%, 65.16% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 73.44% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-6 { 15.16% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 23.44%, 65.16% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 73.44% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-7 { 17.02% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 25.18%, 67.02% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 75.18% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-7 { 17.02% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 25.18%, 67.02% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 75.18% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-8 { 18.88% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 26.92%, 68.88% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 76.92% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-8 { 18.88% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 26.92%, 68.88% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 76.92% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @-webkit-keyframes page-9 { 20.74% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 28.66%, 70.74% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 78.66% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } } @keyframes page-9 { 20.74% { -webkit-transform: rotateZ(0deg) translateX(-18px); transform: rotateZ(0deg) translateX(-18px); } 28.66%, 70.74% { -webkit-transform: rotateZ(180deg) translateX(-18px); transform: rotateZ(180deg) translateX(-18px); } 78.66% { -webkit-transform: rotateZ(0deg) translateX(-18px); trans.........完整代码请登录后点击上方下载按钮下载查看
网友评论0