MediaWiki:Gadget-Navbar.js: Difference between revisions
Jump to navigation
Jump to search
Created page with "(function () { var style = '.czn-navbar{position:absolute;top:0;left:0;width:100%;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;z-index:9999;border-bottom:1px solid rgba(255,255,255,0.05)}' + '.czn-navbar__left,.czn-navbar__right{flex:1;display:flex;align-items:center}' + '.czn-navbar__left{justify-content:flex-start}' + '.czn-navbar__center{display:flex;justify-content:center}' + '.cz..." |
mNo edit summary |
||
| Line 1: | Line 1: | ||
(function () { | (function () { | ||
var style = | var style = | ||
'.czn-navbar{position:absolute;top:0;left:0;width:100%;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;z-index:9999;border-bottom:1px solid rgba(255,255,255,0.05)}' + | '.czn-navbar{position:absolute;top:0;left:0;width:100%;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;box-sizing:border-box;z-index:9999;border-bottom:1px solid rgba(255,255,255,0.05); a:visited{color:#fff}}' + | ||
'.czn-navbar__left,.czn-navbar__right{flex:1;display:flex;align-items:center}' + | '.czn-navbar__left,.czn-navbar__right{flex:1;display:flex;align-items:center}' + | ||
'.czn-navbar__left{justify-content:flex-start}' + | '.czn-navbar__left{justify-content:flex-start}' + | ||
Latest revision as of 08:57, 16 May 2026
(function () {
var style =
'.czn-navbar{position:absolute;top:0;left:0;width:100%;height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;box-sizing:border-box;z-index:9999;border-bottom:1px solid rgba(255,255,255,0.05); a:visited{color:#fff}}' +
'.czn-navbar__left,.czn-navbar__right{flex:1;display:flex;align-items:center}' +
'.czn-navbar__left{justify-content:flex-start}' +
'.czn-navbar__center{display:flex;justify-content:center}' +
'.czn-navbar__right{justify-content:flex-end;gap:20px}' +
'.czn-navbar__logo-link{display:block}' +
'.czn-navbar__logo{height:40px;width:auto;object-fit:contain;display:block}' +
'.czn-navbar__search{position:relative}' +
'.czn-navbar__search-form{display:flex;align-items:center;margin:0}' +
'.czn-navbar__search-input{background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);color:#fff;padding:8px 85px 8px 15px;border-radius:20px;width:240px;outline:none;transition:all 0.3s;font-size:14px;box-sizing:border-box}' +
'.czn-navbar__search-input::placeholder{color:rgba(255,255,255,0.4)}' +
'.czn-navbar__search-input:focus{border-color:#ff540c;background:rgba(255,255,255,0.15)}' +
'.czn-navbar__search-button{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:#ff540c;color:#fff;border:none;padding:5px 14px;border-radius:16px;cursor:pointer;font-size:12px;font-weight:bold;letter-spacing:1px;transition:all 0.3s}' +
'.czn-navbar__search-button:hover{background:#ff6a2a}' +
'.czn-navbar__menu{display:flex;list-style:none;gap:30px;margin:0;padding:0;height:100%;align-items:center}' +
'.czn-navbar__item{position:relative;list-style:none}' +
'.czn-navbar__link{text-decoration:none!important;display:flex;align-items:center;justify-content:center;padding:10px 0;color:#ffffff;font-size:14px;font-weight:bold;letter-spacing:2px;transition:color 0.3s}' +
'.czn-navbar__item:hover>.czn-navbar__link,.czn-navbar__item--active>.czn-navbar__link{color:#ff540c}' +
'.czn-navbar__dropdown{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(15px);background:rgba(0,0,0,0.85);border-radius:8px;min-width:160px;padding:10px 0;opacity:0;visibility:hidden;transition:all 0.4s cubic-bezier(0.175,0.885,0.32,1.275);box-shadow:0 10px 30px rgba(0,0,0,0.5);list-style:none;margin:0}' +
'.czn-navbar__item:hover>.czn-navbar__dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}' +
'.czn-navbar__dropdown .czn-navbar__link{padding:12px 20px;text-align:center;display:block;font-size:13px;letter-spacing:1px}' +
'.czn-navbar__toggle{display:none;color:#fff;font-size:28px;cursor:pointer;z-index:10001;position:relative;background:none;border:none;padding:0;line-height:1}' +
'@media(max-width:900px){' +
'.czn-navbar{padding:0 20px}' +
'.czn-navbar__logo-link{display:none}' +
'.czn-navbar__search{display:none}' +
'.czn-navbar__toggle{display:block}' +
'.czn-navbar__menu{position:fixed;top:0;left:-100%;width:260px;height:100vh;background:rgba(15,15,15,0.98);flex-direction:column;gap:0;padding-top:80px;transition:left 0.4s ease-in-out;overflow-y:auto;border-right:1px solid rgba(255,255,255,0.1);z-index:10000;margin:0}' +
'.czn-navbar__menu--open{left:0}' +
'.czn-navbar__item{width:100%}' +
'.czn-navbar__link{padding:15px 20px;justify-content:flex-start;border-bottom:1px solid rgba(255,255,255,0.05)}' +
'.czn-navbar__dropdown{position:static;transform:none!important;opacity:1;visibility:visible;box-shadow:none;background:transparent;padding:0;width:100%;border-radius:0}' +
'.czn-navbar__dropdown .czn-navbar__link{padding-left:40px;background:rgba(255,255,255,0.02);text-align:left}' +
'}';
var BASE = 'https://sandboxwiki.com/index.php/';
var ACTION_BASE = 'https://sandboxwiki.com/index.php';
function wikiUrl(title) {
return BASE + encodeURIComponent(title).replace(/%2F/g, '/').replace(/%3A/g, ':');
}
function actionUrl(title, action) {
return ACTION_BASE + '?title=' + encodeURIComponent(title) + '&action=' + action;
}
var navHtml =
'<nav class="czn-navbar">' +
'<div class="czn-navbar__left">' +
'<button class="czn-navbar__toggle" id="czn-navbar-toggle" type="button">☰</button>' +
'<a href="' + wikiUrl('Main_Page') + '" class="czn-navbar__logo-link">' +
'<img src="https://sandboxwiki.com/images/e/ed/Bi_chaos_zero_nightmare.png" alt="bi_chaos_zero_nightmare.png" class="czn-navbar__logo">' +
'</a>' +
'</div>' +
'<div class="czn-navbar__center">' +
'<ul class="czn-navbar__menu" id="czn-navbar-menu">' +
'<li class="czn-navbar__item czn-navbar__item--active">' +
'<a href="' + wikiUrl('Main_Page') + '" class="czn-navbar__link">HOME</a>' +
'<ul class="czn-navbar__dropdown">' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Main_Page') + '" class="czn-navbar__link">BACK</a></li>' +
'<li class="czn-navbar__item"><a href="' + actionUrl('Main_Page', 'purge') + '" class="czn-navbar__link">PURGE</a></li>' +
'</ul>' +
'</li>' +
'<li class="czn-navbar__item">' +
'<a href="#" class="czn-navbar__link">WIKI</a>' +
'<ul class="czn-navbar__dropdown">' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Combatant') + '" class="czn-navbar__link">COMBATANT</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Partner') + '" class="czn-navbar__link">PARTNER</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Card') + '" class="czn-navbar__link">CARD</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Relic') + '" class="czn-navbar__link">RELIC</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Encounter') + '" class="czn-navbar__link">ENCOUNTER</a></li>' +
'</ul>' +
'</li>' +
'<li class="czn-navbar__item">' +
'<a href="#" class="czn-navbar__link">DATA</a>' +
'<ul class="czn-navbar__dropdown">' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Fate') + '" class="czn-navbar__link">FATE</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Item') + '" class="czn-navbar__link">ITEM</a></li>' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Art') + '" class="czn-navbar__link">ART</a></li>' +
'</ul>' +
'</li>' +
'<li class="czn-navbar__item">' +
'<a href="#" class="czn-navbar__link">TOOLS</a>' +
'<ul class="czn-navbar__dropdown">' +
'<li class="czn-navbar__item"><a href="' + wikiUrl('Deck_Builder') + '" class="czn-navbar__link">DECK BUILDER</a></li>' +
'</ul>' +
'</li>' +
'</ul>' +
'</div>' +
'<div class="czn-navbar__right">' +
'<div class="czn-navbar__search">' +
'<form action="' + ACTION_BASE + '" method="get" class="czn-navbar__search-form">' +
'<input type="hidden" name="title" value="Special:Search">' +
'<input type="text" name="search" placeholder="Search WIKI..." class="czn-navbar__search-input">' +
'<button type="submit" name="go" class="czn-navbar__search-button">SEARCH</button>' +
'</form>' +
'</div>' +
'</div>' +
'</nav>';
function q(s) { return document.querySelector(s); }
function initNav() {
if (q('.czn-navbar')) return;
var styleTag = document.createElement('style');
styleTag.type = 'text/css';
if (styleTag.styleSheet) {
styleTag.styleSheet.cssText = style;
} else {
styleTag.appendChild(document.createTextNode(style));
}
document.getElementsByTagName('head')[0].appendChild(styleTag);
var body = document.body || document.getElementsByTagName('body')[0];
body.insertAdjacentHTML('afterbegin', navHtml);
var mobileBtn = document.getElementById('czn-navbar-toggle');
var navMenu = document.getElementById('czn-navbar-menu');
if (mobileBtn && navMenu) {
mobileBtn.addEventListener('click', function (e) {
e.stopPropagation();
navMenu.classList.toggle('czn-navbar__menu--open');
mobileBtn.innerHTML = navMenu.classList.contains('czn-navbar__menu--open') ? '✕' : '☰';
});
document.addEventListener('click', function (e) {
if (window.innerWidth <= 900) {
if (!navMenu.contains(e.target) && !mobileBtn.contains(e.target)) {
navMenu.classList.remove('czn-navbar__menu--open');
mobileBtn.innerHTML = '☰';
}
}
});
}
}
initNav();
})();