You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Magic Mouse JS中修改光标颜色及实现分区域变色

Magic Mouse JS 光标颜色修改及分区域变色方案

一、修改全局光标颜色

Magic Mouse JS生成的外层光标元素带有magic-cursor__outer类,默认是白色边框,直接用CSS覆盖即可:

/* 全局修改为红色边框光标 */
.magic-cursor__outer {
  border-color: #ff0000 !important;
}

/* 如果是填充型光标(比如circle-small),修改背景色 */
.magic-cursor__outer {
  background-color: #ff0000 !important;
}

注:添加!important是为了覆盖插件的内联样式优先级,也可以用更具体的CSS选择器提升优先级。

二、分区域动态切换光标颜色

通过监听鼠标在不同区域的进入/离开事件,动态修改光标样式:

步骤1:给目标区域添加标识

给需要区分的section设置id或类:

<section id="section1">第一区域内容</section>
<section id="section2">第二区域内容</section>

步骤2:编写JS切换逻辑(类切换方式,推荐)

用CSS类管理不同颜色,避免直接操作元素样式,更易维护:

/* 定义不同颜色的光标类 */
.cursor-red .magic-cursor__outer {
  border-color: #ff0000 !important;
}
.cursor-blue .magic-cursor__outer {
  border-color: #0000ff !important;
}

在现有Magic Mouse初始化代码之后,添加以下脚本:

const body = document.body;
const section1 = document.getElementById('section1');
const section2 = document.getElementById('section2');

section1.addEventListener('mouseenter', () => {
  body.classList.add('cursor-red');
  body.classList.remove('cursor-blue');
});
section1.addEventListener('mouseleave', () => {
  body.classList.remove('cursor-red');
});

section2.addEventListener('mouseenter', () => {
  body.classList.add('cursor-blue');
  body.classList.remove('cursor-red');
});
section2.addEventListener('mouseleave', () => {
  body.classList.remove('cursor-blue');
});

完整代码示例

把所有内容整合到你的页面中:

<style>
/* 全局默认光标颜色 */
.magic-cursor__outer {
  border-color: #000000 !important;
}
/* 分区域颜色类 */
.cursor-red .magic-cursor__outer {
  border-color: #ff0000 !important;
}
.cursor-blue .magic-cursor__outer {
  border-color: #0000ff !important;
}
</style>

<section id="section1">第一区域</section>
<section id="section2">第二区域</section>

<script type="text/javascript" src="https://res.cloudinary.com/veseylab/raw/upload/v1684982764/magicmouse-2.0.0.cdn.min.js"></script>
<script type="text/javascript">
  options = {
    "cursorOuter": "circle-basic",
    "hoverEffect": "circle-move", 
    "hoverItemMove": false,
    "defaultCursor": false,
    "outerWidth": 30,
    "outerHeight": 30
  };
  magicMouse(options);

  // 分区域变色逻辑
  const body = document.body;
  const section1 = document.getElementById('section1');
  const section2 = document.getElementById('section2');

  section1.addEventListener('mouseenter', () => {
    body.classList.add('cursor-red');
    body.classList.remove('cursor-blue');
  });
  section1.addEventListener('mouseleave', () => {
    body.classList.remove('cursor-red');
  });

  section2.addEventListener('mouseenter', () => {
    body.classList.add('cursor-blue');
    body.classList.remove('cursor-red');
  });
  section2.addEventListener('mouseleave', () => {
    body.classList.remove('cursor-blue');
  });
</script>

内容的提问来源于stack exchange,提问作者RumeasiyanS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:37:36