gsap实现消息纸张滚动卷起动画效果代码
代码语言:html
所属分类:加载滚动
代码描述:gsap实现消息纸张滚动卷起动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/reset.min.css"> <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Poppins:wght@400;500;600;700&display=swap'> <style> #phone { --c-frame: black; --c-interface: black; --c-headline: black; --c-screen: #e4e2e2; --c-letter: #fff; --c-date: black; --c-subline: #898989; --c-text: #A7A7A7; --empty-mask: 100%; --headline-y: 0; position: relative; font-family: -apple-system, BlinkMacSystemFont, sans-serif; font-size: 14px; width: 375px; color: var(--c-interface); } @media (min-width: 501px) { #phone { border-radius: 9.6%/4.43%; box-shadow: 0 0 0 10px var(--c-frame); } #phone:before { content: ""; position: absolute; z-index: 1; top: 0; left: 50%; transform: translateX(-50%); height: 30px; width: 200px; border-radius: 0 0 16px 16px; background: var(--c-frame); } } #phone .time, #phone .battery, #phone .cellular, #phone .wifi { position: absolute; top: 17px; } @media (max-width: 500px) { #phone .time, #phone .battery, #phone .cellular, #phone .wifi { display: none; } } #phone .time { left: 21px; top: 15px; font-size: 100%; font-weight: 600; } #phone .battery { right: 15px; width: 25px; height: 12px; } #phone .cellular { right: 64px; width: 18px; height: 12px; } #phone .wifi { right: 44px; width: 16px; height: 12px; } #phone .screen { position: relative; width: 100%; } @media (min-width: 501px) { #phone .screen { padding-bottom: 216.533333333%; background: var(--c-screen); transform: translateZ(0); border-radius: 36px; overflow: hidden; -webkit-mask-image: -webkit-radial-gradient(white, black); } } @media (max-width: 500px) { #phone .screen { height: 100vh; } } #phone .screen h1 { font-size: 30px; font-family: "DM Serif Display", serif; font-weight: normal; color: var(--c-headline); text-align: center; margin: 0; position: absolute; top: 92px; left: 0; right: 0; transform: translateY(var(--headline-y)) translateZ(0); } #phone .screen .empty { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); text-align: center; color: var(--c-text); -webkit-mask-image: linear-gradient(to left, transparent var(--empty-mask), black calc(var(--empty-mask) + 10%)); mask-image: linear-gradient(to left, transparent var(--empty-mask), black calc(var(--empty-mask) + 10%)); } #phone .screen .empty svg { display: block; width: 48px; height: 48px; margin: 0 auto 12px auto; } #phone .screen .empty span { display: block; font-size: 20px; font-family: "DM Serif Display", serif; } #phone .screen .content { position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow-y: scroll; overflow-x: hidden; -ms-overflow-style: none; scrollbar-width: none; } #phone .screen .content::-webkit-scrollbar { display: none; } #phone .screen .content .entries article { --clip: 0px; --compact-s: 0; --spacing: 32px; --border-radius-h: 0px; --border-radius-v: 0px; --article-r: 0deg; --article-x: 0; --article-y: 0; --to-article-r: -4deg; --to-article-x: -4px; --to-article-y: -44px; --compact-o: 0; margin-top: var(--spacing); margin-left: 20px; margin-right: 20px; margin-bottom: 0; position: -webkit-sticky; position: sticky; top: 184px; transform-origin: 50% 12px; transform: translate(var(--article-x), var(--article-y)) rotate(var(--article-r)) translateZ(0); border-radius: var(--border-radius-h) 0px 0px 0px/var(--border-radius-v) 0px 0px 0px; } #phone .screen .content .entries article:first-of-type { --spacing: 184px; } #phone .screen .content .entries article:nth-child(2) { --to-article-r: -3deg; --to-article-x: -2px; --to-article-y: -36px; } #phone .screen .content .entries article:nth-child(3) { --to-article-r: 1deg; --to-article-y: -8px; } #phone .screen .content .entries article .compact { position: absolute; left: 0; right: 0; transform-origin: 50% 0; transform: scaleY(var(--compact-s)); z-index: 1; } #phone .screen .content .entries article .compact:before, #phone .screen .content .entries article .compact:after { content: ""; } #phone .screen .content .entries article .compact:before { position: absolute; left: 0; right: 0; top: 0; height: 60px; filter: blur(3px); background: linear-gradient(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0)); opacity: var(--compact-o); } #phone .screen .content .entries article .compact:after { position: relative; z-index: 1; display: block; width: 100%; height: 24px; background: linear-gradient(#d5d5d5, #ffffff 65%, #dddddd); box-shadow: 0 4px 5px rgba(0, 0, 0, 0.08); } #phone .screen .content .entries article .inner { transform: translateY(calc(var(--clip) * -1)); -webkit-clip-path: polygon(0 var(--clip), 100% var(--clip), 100% 100%, 0% 100%); clip-path: polygon(0 var(--clip), 100% var(--clip), 100% 100%, 0% 100%); background: var(--c-letter); } #phone .screen .content .entries article .inner .info { padding: 24px; border-bottom: 1px solid var(--c-screen); } #phone .screen .content .entries article .inner .info strong { color: var(--c-date); display: block; font-family: "DM Serif Display", serif; font-size: 21px; margin-bottom: 4px; } #phone .screen .content .entries article .inner .info small { color: var(--c-subline); display: block; font-size: 14px; font-family: "Poppins"; font-weight: 500; } #phone .screen .content .entries article .inner .text { padding: 24px; color: var(--c-text); font-family: "Poppins"; font-size: 14px; line-height: 1.6; } #phone .screen .content .entries article .inner .text p { margin: 0; } #phone .screen .content .entries article .inner .text p:not(:last-child) { margin-bottom: 16px; } html { box-sizing: border-box; -webkit-font-smoothing: antialiased; } * { box-sizing: inherit; } *:before, *:after { box-sizing: inherit; } body { min-height: 100vh; display: flex; font-family: "Inter", Arial; justify-content: center; align-items: center; background: #F0F0F0; } @media (min-width: 501px) { body { padding: 24px; } } body .dribbble { position: fixed; display: block; right: 20px; bottom: 20px; } body .dribbble img { display: block; height: 28px; } body .twitter { position: fixed; display: block; right: 64px; bottom: 14px; } body .twitter svg { width: 32px; height: 32px; fill: #1da1f2; } </style> </head> <body> <div id="phone"> <div class="screen"> <h1>历史信件</h1> <div class="empty"> <svg viewBox="0 0 48 48"> <path d="M47.3296 9.02336C46.9238 8.85514 46.4566 8.94821 4.........完整代码请登录后点击上方下载按钮下载查看
网友评论0