Toggle navigation
在线编辑器
在线代码
文本比较
jQuery下载
前端库
在线手册
登录/注册
下载代码
html
css
js
分享到微信朋友圈
X
html
Phone
Music
Map
Wi-Fi
Settings
css
*, *:before, *:after { box-sizing: border-box; margin: 0; padding: 0; } :root { font-size: calc(16px + (20 - 16) * (100vw - 320px)/(980 - 320)); --rotateTimes: 0; } body { background-color: #002; background-image: radial-gradient(circle at center, #045, #002); color: #fff; font: 1em "Open Sans", sans-serif; height: 100vh; line-height: 1.5; } nav, ul, li { transform-style: preserve-3d; } nav, li { position: absolute; top: 50%; left: 50%; } nav, li a { border-radius: 50%; } nav { width: 18em; height: 18em; transform: translate(-50%, -50%) rotateX(75deg); } ul, li a { width: 100%; height: 100%; } ul { list-style: none; } li { animation: idle 4s ease-in-out infinite; text-align: center; width: 5em; height: 5em; transform: translate(-50%, -50%); } li a { box-shadow: 0 0 0 0.1em #0cf inset, 0 0 1em #0cf inset; color: currentColor; display: inline-block; text-decoration: none; transition: transform 0.4s linear, box-shadow 0.15s linear, margin 0.1s linear, width 0.1s linear, height 0.1s linear; } li a span { transition: color 0.15s linear; } li a:before { background-color: #fff; border-radius: 50%; content: ""; display: block; opacity: 0.5; position: absolute; top: 0.75em; left: 0.75em; width: 1em; height: 0.5em; transform: rotate(-45deg); } li a:focus, li a.current { box-shadow: 0 0 0 0.1em #ff0 inset, 0 0 1em #ff0 inset; outline: 0; } li a:focus span, li a.current span { color: #ff0; } li a:hover { margin: -5% 0 0 -5%; width: 110%; height: 110%; } li a:hover svg { width: 3em; height: 3em; } @media (prefers-reduced-motion) { li { animation: none; } } svg { display: block; margin: 1.25em auto 1.5em auto; transition: width 0.1s linear, height 0.1s linear; width: 2.5em; height: 2.5em; } /* Position bubbles */ li:nth-of-type(1) { animation-delay: 0s; } li:nth-of-type(1) a { transform: rotate(calc(0deg + var(--rotateTimes) * 51.4285714286deg)) translateY(9em) rotate(calc(0deg - var(--rotateTimes) * 51.4285714286deg)) rotateX(-75deg); } li:nth-of-type(2) { animation-delay: -0.5s; } li:nth-of-type(2) a { transform: rotate(calc(-51.4285714286deg + var(--rotateTimes) * 51.4285714286deg)) translateY(9em) rotate(calc(51.4285714286deg - var(--rotateTimes) * 51.4285714286deg)) rotateX(-75deg); } li:nth-of-type(3) { animation-delay: -1s; } li:nth-of-type(3) a { transform: rotate(calc(-102.8571428571deg + var(--rotateTimes) * 51.4285714286deg)) translateY(9em) rotate(calc(102.8571428571deg - var(--rotateTimes) * 51.4285714286deg)) rotateX(-75deg); } li:nth-of-type(4) { animation-delay: -1.5s; } li:nth-of-type(4) a { transform: rotate(calc(-154.2857142857deg + var(--rotateTimes) * 51.4285714286deg)) translateY(9em) rotate(calc(154.2857142857deg - var(--rotateTimes) * 51.4285714286deg)) rotateX(-75deg); } li:nth-of-type(5) { animation-delay: -2s; } li:nth-of-type(5) a { transform: rotate(calc(-205.7142857143deg + var(--rotateTimes) * 51.4285714286deg)) translateY(9em) rotate(calc(205.7142857143deg - var(--rotateTimes) * 51.4285714286deg)) rotateX(-75deg); } /* Animations */ .rise { animation: rise 1s ease-out; } .rise a { animation: fadeOut 1s ease-out; } .rise a.pop { animation: pop 1s linear; } .rise a.pop svg, .rise a.pop span { visibility: hidden; } @keyframes rise { from { transform: translateZ(0); } 15% { transform: translateZ(-1em); } to { transform: translateZ(35em); } } @keyframes fadeOut { from, 15% { opacity: 1; } 50%, to { opacity: 0; } } @keyframes pop { from { margin: -5% 0 0 -5%; width: 110%; height: 110%; opacity: 1; } 10%, to { margin: -20% 0 0 -20%; width: 140%; height: 140%; opacity: 0; } } @keyframes idle { from, to { transform: translate(-50%, -48%); } 25% { transform: translate(-52%, -50%); } 50% { transform: translate(-50%, -52%); } 75% { transform: translate(-48%, -50%); } }
JavaScript
document.addEventListener("DOMContentLoaded", function(){ let rise = function(trigEl) { trigEl.blur(); let ul = document.querySelector("ul"); ul.classList.add("rise"); trigEl.classList.add("pop"); setTimeout(function(){ trigEl.focus(); ul.classList.remove("rise"); trigEl.classList.remove("pop"); }, 1000); }; this.querySelectorAll("li a").forEach(function(el){ let rt = document.querySelector(":root"), di = +el.getAttribute("data-item"); el.addEventListener("blur",function(){ //var getRt = +window.getComputedStyle(el).getPropertyValue('--rotateTimes'); //console.log(getRt); //this.classList.add("current"); }); el.addEventListener("focus",function(){ rt.style.setProperty("--rotateTimes",di); //this.classList.remove("current"); }); el.addEventListener("dblclick",function(){ rise(this); }); el.addEventListener("keyup",function(e){ if (e.keyCode === 13) { rise(this); } }); }); });
粒子
时间
文字
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号