打开/关闭搜索
搜索
打开/关闭菜单
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() { // 页面白名单 const allowPages = [ "首页", "Main Page", "你的自定义首页名字" ]; const currentPage = mw.config.get("wgTitle"); if( !allowPages.includes(currentPage) ){ return; } 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 = ` /* 隐藏浏览器原生光标 */ body { cursor: none !important; } /* 防止输入框/按钮露馅,强制全局隐藏 */ * { cursor: none !important; } .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 #888e99; 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(); 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界面页面