打开/关闭搜索
搜索
打开/关闭菜单
1
40
1
326
末世录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
末世录
角色
国家
教派
我想嗦牛子
嗦塞尔达牛子
嗦萨图恩牛子
嗦奥利奥头牛子
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁MediaWiki:Citizen.js”︁的源代码
MediaWiki界面页面
查看
阅读
查看源代码
查看历史
associated-pages
系统消息
讨论
更多操作
←
MediaWiki:Citizen.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
(function() { if( window.magneticCursorInit ) return; window.magneticCursorInit = true; mw.loader.using( [], function() { // 创建四角光标 const ptr = document.createElement('div'); ptr.className = 'magnetic-true-corner'; ptr.innerHTML = `<i></i><i></i><i></i><i></i>`; document.body.appendChild(ptr); // 样式:原版亮绿 + 纯拐角无方块 const css = document.createElement('style'); css.textContent = ` .magnetic-true-corner{ position:fixed; left:0;top:0; width:0;height:0; pointer-events:none; z-index:999999!important; } .magnetic-true-corner i{ position:absolute; width:14px;height:14px; border:2px solid #17f700; background:transparent!important; box-shadow:none!important; } /* 只留拐角,镂空 */ .magnetic-true-corner i:nth-child(1){top:-2px;left:-2px;border-right:none;border-bottom:none;} .magnetic-true-corner i:nth-child(2){top:-2px;right:-2px;border-left:none;border-bottom:none;} .magnetic-true-corner i:nth-child(3){bottom:-2px;left:-2px;border-right:none;border-top:none;} .magnetic-true-corner i:nth-child(4){bottom:-2px;right:-2px;border-left:none;border-top:none;} `; document.head.appendChild(css); let hoverEl = null; let mx = 0, my = 0; // 光标缓冲坐标(做顺滑移动) let smoothX = 0, smoothY = 0; let curW = 40, curH = 40; // 鼠标实时位置 document.addEventListener('mousemove', e => { mx = e.clientX; my = e.clientY; }); // 顺滑帧动画:磁吸缓冲 function loop(){ const ease = 0.15; // 磁吸顺滑度,越小越黏 if(hoverEl){ // 吸附到元素中心 + 缓冲 const r = hoverEl.getBoundingClientRect(); const targetX = r.left + r.width / 2; const targetY = r.top + r.height / 2; smoothX += (targetX - smoothX) * ease; smoothY += (targetY - smoothY) * ease; curW = r.width; curH = r.height; // 四角框精准包住按钮 ptr.style.left = (smoothX - curW / 2) + 'px'; ptr.style.top = (smoothY - curH / 2) + 'px'; ptr.style.width = curW + 'px'; ptr.style.height = curH + 'px'; }else{ // 常态跟随鼠标,小光标顺滑移动 curW = 40; curH = 40; smoothX += (mx - smoothX) * ease; smoothY += (my - smoothY) * ease; ptr.style.left = (smoothX - 20) + 'px'; ptr.style.top = (smoothY - 20) + 'px'; ptr.style.width = curW + 'px'; ptr.style.height = curH + 'px'; } requestAnimationFrame(loop); } loop(); // Citizen 精准按钮选择器 const sel = [ // 官方皮肤按钮 '.citizen-nav a', '.citizen-menu a', '.citizen-button', '.citizen-action-button', '.cdx-button', '.mw-editsection a', '#citizen-header__nav a', '.citizen-sidebar a', // ✅ 你自己加的 _target 类(所有你想吸附的元素) '._target', // ✅ Commentstreams 评论插件全按钮自动吸附 '.commentstreams-button', '.commentstreams-submit', '.commentstreams-header button', '.commentstreams-box button', // ✅ 常用插件通用按钮(全覆盖) '.mw-ui-button', 'button', 'a[role="button"]' ].join(','); function bind(){ document.querySelectorAll(sel).forEach(el=>{ if(el._magBind)return; el._magBind = 1; el.addEventListener('mouseenter', ()=> hoverEl = el); el.addEventListener('mouseleave', ()=> hoverEl = null); }); } bind(); new MutationObserver(bind).observe(document.body,{childList:true,subtree:true}); }); })();
返回
MediaWiki:Citizen.js
。
查看“︁MediaWiki:Citizen.js”︁的源代码
MediaWiki界面页面