@aw1875/ghost-cursor

中文文档
1.1.10发布于 2022/02/16ISCTypeScriptCommonJS近 30 天下载 1704

将鼠标像人一样移动在木偶机上,或在任何2D平面上产生现实的运动

中文使用文档
文档目录4 节
  1. 安装
  2. 使用量
  3. 傀儡人特有的行为
  4. 怎么会这样

幽灵光标

生成像人一样现实的鼠标在坐标之间移动数据, 或者在带有傀儡的元素之间导航 就像你绝对不是机器人.

是吗? 机器人可以吗 这个?

基于 幽灵诅咒 软件包

安装

yarn add @aw1875/ghost-cursor

或带 npm

npm install @aw1875/ghost-cursor

使用量

生成2个坐标与相关时间戳之间的运动数据.

import { path } from "@aw1875/ghost-cursor";

const from = { x: 100, y: 100 };
const to = { x: 600, y: 700 };

const route = path(from, to);

/**
 * [
 *   { x: 100, y: 100, timestamp: 1640158937890 },
 *   { x: 126.70079722115054, y: 106.31184259284494, timestamp: 1640158939620 },
 *   { x: 151.74738386288035, y: 112.34993715686089, timestamp: 1640158939565 },
 *   { x: 175.33112687647585, y: 118.45478710608484, timestamp: 1640158939763 },
 *   { x: 197.6433932132232, y: 124.96689585455373, timestamp: 1640158939408 },
 *   ... and so on
 * ]
 */

使用傀儡:

import { createCursor } from "@aw1875/ghost-cursor";
import puppeteer from "puppeteer";

const run = async (url) => {
  const selector = "#sign-up button";
  const browser = await puppeteer.launch({ headless: false });
  const page = browser.newPage();
  const cursor = createCursor(page);
  await page.goto(url);
  await page.waitForSelector(selector);
  await cursor.click(selector);
  // shorthand for
  // await cursor.move(selector)
  // await cursor.click()
};

傀儡人特有的行为

  • cursor.move() 将自动过度射击或略为错过,并重新适应距离太远的元素 从光标的起点.
  • 移动对象时,将选择元素内的随机坐标,而不是 徘徊在元素的正中央.
  • 鼠标的速度将考虑您点击的元素的距离和大小.

ghost-cursor in action

窗体上的幽灵光标

怎么会这样

贝塞尔曲线几乎是这里所有的工作. 它们让我们创造出无限的曲线 在任何两点之间 他们看起来很像人类 (至少比Perlin或simplex噪声等替代品更为重要)

魔法来源于能够为曲线通过设定多点. 这是通过采摘完成的 2在曲线上和下的一个有限区域随机坐标.

但是,我们不想在使用这种方法时 出现奇特的立方曲线,因为没有人真的会移动鼠标 这样,所以在产生随机分数时,只取出一行的一面.

当计算鼠标移动的速度时,我们使用 菲茨法则 以决定我们应该返回的点数相对于被点击元素的宽度和距离 在鼠标和对象之间.

版本与发布记录

@aw1875/ghost-cursor 共发布 3 个版本,首次发布于 2022/02/16;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.10latest2022/02/164 年前
1.1.92022/02/164 年前
1.1.82022/02/164 年前

关于 @aw1875/ghost-cursor 的常见问题

@aw1875/ghost-cursor 是什么?

将鼠标像人一样移动在木偶机上,或在任何2D平面上产生现实的运动

如何安装 @aw1875/ghost-cursor?

在项目目录运行 npm install @aw1875/ghost-cursor,或使用 pnpm add / yarn add / bun add。

@aw1875/ghost-cursor 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aw1875/ghost-cursor 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aw1875/ghost-cursor 可以商用吗?

@aw1875/ghost-cursor 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aw1875/ghost-cursor 的下载量有多少?

根据 npm 官方下载统计,@aw1875/ghost-cursor 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,704 次,日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aw1875/ghost-cursor 还在维护吗?

最新版本 1.1.10 发布于 2022/02/16(4 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2022/02/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。