Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
css
.menu { --color: #fff; --duration: 1.6s; width: 36px; height: 36px; padding: 0; margin: 0; outline: none; position: relative; border: none; background: none; display: -webkit-box; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; flex-direction: column; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; cursor: pointer; -webkit-appearence: none; -webkit-tap-highlight-color: transparent; } .menu:before, .menu:after { content: ''; } .menu:before, .menu:after, .menu div { width: 32px; height: 4px; border-radius: 2px; background: var(--color); } .menu div { margin: 6px 0; } .menu.animation { -webkit-animation: burger var(--duration) linear forwards var(--direction, reverse); animation: burger var(--duration) linear forwards var(--direction, reverse); } .menu.animation:before, .menu.animation:after, .menu.animation div { --m: 2; --r: -1; -webkit-animation: move var(--duration) linear forwards var(--direction, reverse); animation: move var(--duration) linear forwards var(--direction, reverse); } .menu.animation div { --m: 1; --r: 1; } .menu.animation:after { --m: 0; --r: 1; } .menu.animation.active { --direction: normal; } @-webkit-keyframes burger { 15% { -webkit-transform: translateY(8px); transform: translateY(8px); } 30%, 40% { -webkit-transform: none; transform: none; } 60% { -webkit-transform: translateY(12px); transform: translateY(12px); } 75% { -webkit-transform: translateY(-16px); transform: translateY(-16px); } 100% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } } @keyframes burger { 15% { -webkit-transform: translateY(8px); transform: translateY(8px); } 30%, 40% { -webkit-transform: none; transform: none; } 60% { -webkit-transform: translateY(12px); transform: translateY(12px); } 75% { -webkit-transform: translateY(-16px); transform: translateY(-16px); } 100% { -webkit-transform: translateY(-10px); transform: translateY(-10px); } } @-webkit-keyframes move { 15%, 50% { -webkit-transform: translateY(calc(10px * var(--m))); transform: translateY(calc(10px * var(--m))); } 30% { -webkit-transform: translateY(calc(-6px * var(--m))); transform: translateY(calc(-6px * var(--m))); } 35% { -webkit-transform: translateY(calc(-8px * var(--m))); transform: translateY(calc(-8px * var(--m))); } 65% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(60deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(60deg * var(--r))); } 90% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(40deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(40deg * var(--r))); } 80%, 100% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(45deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(45deg * var(--r))); } } @keyframes move { 15%, 50% { -webkit-transform: translateY(calc(10px * var(--m))); transform: translateY(calc(10px * var(--m))); } 30% { -webkit-transform: translateY(calc(-6px * var(--m))); transform: translateY(calc(-6px * var(--m))); } 35% { -webkit-transform: translateY(calc(-8px * var(--m))); transform: translateY(calc(-8px * var(--m))); } 65% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(60deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(60deg * var(--r))); } 90% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(40deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(40deg * var(--r))); } 80%, 100% { -webkit-transform: translateY(calc(10px * var(--m))) rotate(calc(45deg * var(--r))); transform: translateY(calc(10px * var(--m))) rotate(calc(45deg * var(--r))); } } html { box-sizing: border-box; -webkit-font-smoothing: antialiased; } * { box-sizing: inherit; } *:before, *:after { box-sizing: inherit; } body { min-height: 100vh; display: -webkit-box; display: flex; -webkit-box-pack: center; justify-content: center; -webkit-box-align: center; align-items: center; background: #275EFE; }
JavaScript
document.querySelectorAll('.menu').forEach(button => button.addEventListener('click', toggle)); function toggle() { let btn = this; btn.classList.add('animation'); btn.classList.toggle('active'); let newElem = btn.cloneNode(true); btn.parentNode.replaceChild(newElem, btn); newElem.addEventListener('click', toggle); }
粒子
时间
文字
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号