Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
:root { --size: 100px; --size-folder-back: var(--size); --size-page-1: calc(var(--size) * 0.55); --size-page-2: calc(var(--size) * 0.65); --size-folder-front: var(--size); --ratio-page-1: 0.95; --ratio-page-2: 1.05; --ratio-page-2-height: 0.5; --ratio-page-2-offset: 0; --scale-folder: 1; --scale-pages: 0.7; --opacity-page-2: 1; } body { background-color: #F4F2F9; overflow: hidden; } .download, .folder-back, .page-1, .page-2, .folder-front, .background { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .download { width: var(--size); height: var(--size); cursor: pointer; filter: drop-shadow(rgba(0, 0, 0, 0.09) 4px 8px 12px) drop-shadow(rgba(0, 0, 0, 0.06) 2px 4px 6px) drop-shadow(rgba(0, 0, 0, 0.03) 1px 2px 3px); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-tap-highlight-color: transparent; } .folder-back { width: var(--size-folder-back); height: var(--size-folder-back); transform-origin: 50% 100%; transform: translate(-50%, -50%) scaleY(var(--scale-folder)); } .page-1 { width: calc(var(--size-page-1) * var(--ratio-page-1)); height: calc(var(--size-page-1) / var(--ratio-page-1)); border-radius: 8px; background-color: #F2EEF7; filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.1)); transform-origin: 50% 90%; transform: translate(-50%, -50%) translateY(calc((1 - var(--scale-pages)) * -65%)) scale(var(--scale-pages)); } .page-2 { width: calc(var(--size-page-2) * var(--ratio-page-2)); height: calc((var(--size-page-2) * var(--ratio-page-2-height)) / var(--ratio-page-2)); border-radius: 10px; background-color: #FFFEFF; opacity: var(--opacity-page-2); filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.1)); transform: translate(-50%, -50%) translateY(17%) translateY(calc((1 - var(--scale-pages)) * -85%)) translateY(calc(var(--size) * -1.2 * var(--ratio-page-2-offset))) translateY(calc((1 - var(--ratio-page-2-height)) * -65%)) scale(var(--scale-pages)); } .folder-front { width: var(--size-folder-front); height: var(--size-folder-front); transform-origin: 50% 100%; filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.1)); transform: translate(-50%, -50%) scaleY(calc(var(--scale-folder) * var(--scale-folder))); } .background { opacity: 0.25; pointer-events: none; } .dribbble { position: fixed; display: block; right: 20px; bottom: 20px; } .dribbble img { display: block; height: 28px; } .twitter { position: fixed; display: block; right: 64px; bottom: 14px; } .twitter svg { width: 32px; height: 32px; fill: #1da1f2; }
JavaScript
const download = document.querySelector('.download'); const background = document.querySelector('.background'); const folderFront = document.querySelector('.folder-front'); const size = gsap.getProperty(download, '--size'); const playspeed = 1; const keyframes = [ /* 0 */0.00, //s /* 1 */0.20, //s /* 2 */0.27, //s /* 3 */0.35, //s /* 4 */0.55, //s /* 5 */2.00 //s ]; const timespan = (start, end) => ({ delay: keyframes[start] * (1 / playspeed), duration: (keyframes[end] - keyframes[start]) * (1 / playspeed) }); const handleClick = () => { const page = document.createElement('div'); page.classList.add('page-2'); download.insertBefore(page, folderFront); /* Page */ // Fall gsap.fromTo(page, { '--ratio-page-2-offset': 1, '--ratio-page-2-height': 1 }, { '--ratio-page-2-offset': 0, ...timespan(0, 3), onComplete: () => { page.remove(); } }); // Fade in gsap.fromTo(page, { '--opacity-page-2': 0 }, { '--opacity-page-2': 1, ...timespan(0, 1) }); // Height gsap.to(page, { '--ratio-page-2-height': 0.5, ...timespan(2, 3) }); /* Pages */ // Scale gsap.fromTo(download, { '--scale-pages': 1 }, { '--scale-pages': 0.8, ...timespan(3, 4) }); gsap.to(download, { '--scale-pages': 1, ease: 'elastic', ...timespan(4, 5) }); /* Folder */ // Scale gsap.fromTo(download, { '--scale-folder': 1 }, { '--scale-folder': 1.12, ...timespan(3, 4) }); gsap.to(download, { '--scale-folder': 1, ease: 'elastic', ...timespan(4, 5) }); /* Background */ // Scale gsap.fromTo(background, { scale: 1 }, { scale: 1.1, ease: 'sine.inOut', ...timespan(3, 4) }); gsap.to(background, { scale: 1, ease: 'elastic', ...timespan(4, 5) }); }; download.addEventListener('click', handleClick); handleClick();
粒子
时间
文字
hover
canvas
3d
游戏
音乐
火焰
水波
轮播图
鼠标跟随
动画
css
加载动画
导航
菜单
按钮
滑块
tab
弹出层
统计图
svg
×
Close
在线代码下载提示
开通在线代码永久免费下载,需支付20jQ币
开通后,在线代码模块中所有代码可终身免费下!
您已开通在线代码永久免费下载,关闭提示框后,点下载代码可直接下载!
您已经开通过在线代码永久免费下载
对不起,您的jQ币不足!可通过发布资源 或
直接充值获取jQ币
取消
开通下载
<!doctype html> <html> <head> <meta charset="utf-8"> <title>下载动画-jq22.com</title> <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script> <style>
</style> </head> <body>
<script>
</script>
</body> </html>
2012-2021 jQuery插件库版权所有
jquery插件
|
jq22工具库
|
网页技术
|
广告合作
|
在线反馈
|
版权声明
沪ICP备13043785号-1
浙公网安备 33041102000314号