打开/关闭搜索
搜索
打开/关闭菜单
1
40
1
326
末世录
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
上传文件
末世录
角色
国家
教派
我想嗦牛子
嗦塞尔达牛子
嗦萨图恩牛子
嗦奥利奥头牛子
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
创建账号
登录
查看“︁MediaWiki:Citizen.js”︁的源代码
MediaWiki界面页面
查看
阅读
查看源代码
查看历史
associated-pages
系统消息
讨论
更多操作
←
MediaWiki:Citizen.js
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
此页面为本wiki上的软件提供界面文本,并受到保护以防止滥用。 如欲修改所有wiki的翻译,请访问
translatewiki.net
上的MediaWiki本地化项目。
您无权编辑此JavaScript页面,因为编辑此页面可能会影响所有访问者。
您可以查看和复制此页面的源代码。
/* 这里所有JavaScript都会加载给Citizen皮肤的用户 */ (function() { mw.loader.using('jquery', function() { $(function() { // 防重复挂载 if (document.querySelector('.magnetic-pointer-original')) return; // 创建光标DOM const pointer = document.createElement('div'); pointer.className = 'magnetic-pointer-original'; pointer.innerHTML = '<div></div><div></div><div></div><div></div>'; document.body.appendChild(pointer); // 终极修复CSS:纯镂空四角 + 适配Citizen层级 const style = document.createElement('style'); style.textContent = ` /* 光标本体 */ .magnetic-pointer-original { --width: 4rem; --height: 4rem; position: fixed; top: calc(var(--height) / -2); left: calc(var(--width) / -2); width: var(--width); height: var(--height); transition: all 0.2s ease-out; pointer-events: none; z-index: 999999 !important; /* 压过Citizen所有弹窗/导航 */ } /* 四角拐角 - 杜绝方块 */ .magnetic-pointer-original div { position: absolute; width: 12px; height: 12px; border-color: #17f700; background: transparent !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; } .magnetic-pointer-original div:nth-child(1) {top:0;left:0;border-top:2px solid;border-left:2px solid;} .magnetic-pointer-original div:nth-child(2) {top:0;right:0;border-top:2px solid;border-right:2px solid;} .magnetic-pointer-original div:nth-child(3) {bottom:0;left:0;border-bottom:2px solid;border-left:2px solid;} .magnetic-pointer-original div:nth-child(4) {bottom:0;right:0;border-bottom:2px solid;border-right:2px solid;} /* 锁定Citizen皮肤所有按钮为磁吸目标 */ .citizen-button, .citizen-ui-button, .citizen-nav-item a, .citizen-menu-item a, #citizen-header a, #citizen-sidebar a, .vector-tabs a, .mw-editsection, a.citizen-link-button { position: relative !important; } `; document.head.appendChild(style); let currentTarget = null; let currentX = 0, currentY = 0; // 磁吸跟随逻辑 const onMouseMove = function(e) { let x = e.clientX; let y = e.clientY; if (currentTarget) { const rect = currentTarget.getBoundingClientRect(); const centerX = rect.left + rect.width / 2; const centerY = rect.top + rect.height / 2; x = centerX + (x - centerX) * 0.12; // 微调吸附顺滑度 y = centerY + (y - centerY) * 0.12; } currentX = x; currentY = y; pointer.style.transform = `translate(${currentX}px, ${currentY}px)`; }; const onMouseEnter = function(e) { currentTarget = e.currentTarget; const rect = currentTarget.getBoundingClientRect(); // 贴合Citizen按钮间距,放大留白更自然 const gap = window.innerWidth / 60; pointer.style.setProperty('--width', rect.width + gap + 'px'); pointer.style.setProperty('--height', rect.height + gap + 'px'); }; const onMouseLeave = function() { currentTarget = null; pointer.style.setProperty('--width', '4rem'); pointer.style.setProperty('--height', '4rem'); }; // 自动绑定:Citizen全系列按钮 + 原有自定义_target const bindCitizenButtons = function() { const selector = ` .citizen-button:not([data-bound]), .citizen-ui-button:not([data-bound]), .citizen-nav-item a:not([data-bound]), .citizen-menu-item a:not([data-bound]), #citizen-header a:not([data-bound]), #citizen-sidebar a:not([data-bound]), .mw-editsection:not([data-bound]), a.citizen-link-button:not([data-bound]), ._target:not([data-bound]) `; document.querySelectorAll(selector).forEach(el => { el.dataset.bound = "1"; el.addEventListener('mouseenter', onMouseEnter); el.addEventListener('mouseleave', onMouseLeave); }); }; // 全局鼠标监听 window.addEventListener('mousemove', onMouseMove); // 初始绑定 bindCitizenButtons(); // 监听动态加载(侧边栏折叠/展开、AJAX页面、弹窗) const observer = new MutationObserver(() => bindCitizenButtons()); observer.observe(document.body, { childList: true, subtree: true, attributes: true }); }); }); })();
返回
MediaWiki:Citizen.js
。
查看“︁MediaWiki:Citizen.js”︁的源代码
MediaWiki界面页面