首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟鼠标运动

模拟鼠标运动
EN

Stack Overflow用户
提问于 2022-10-24 10:48:41
回答 1查看 71关注 0票数 3

考虑一下这个场景。用户将鼠标移动到窗口内。我有窗口尺寸和鼠标坐标。例如:

代码语言:javascript
复制
let userInput = {
    window: {
        height: 822,
        width: 1440
    },
    mouse: {
        x: 1068,
        x_pct: "74.167",
        y: 1,
        y_pct: "0.111"
    }
}

在一个容器里,在另一个窗口里。我想模拟鼠标的移动,并将一个元素(如div )放置在类似于userInput中鼠标位置的位置上。

一个简单的解释是,如果用户鼠标在窗口的左上角,将元素放在容器的左上角。

我可能是过激,但我觉得容器的宽度和高度必须考虑相对于窗口的尺寸,以便将元素准确地放置在窗口中。因此,我不能仅仅将对象放在与userInput提供的位置相同的位置,例如:

代码语言:javascript
复制
element.style.left = userInput.mouse.x + "px";
element.style.top = userInput.mouse.y + "px";

我觉得我需要一个公式或算法来完成这个任务。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-24 11:22:05

这个简单的片段可以帮你。

代码语言:javascript
复制
const myNewWindow = window.open("", "", "left=,top=10,width=320,height=320")
myNewWindow.document.write("<div id='target' style='position:absolute; background:red;'>Hello world!</div>")

document.addEventListener("mousemove", (e)=>{
    const mainW = window.innerWidth;
    const mainH = window.innerHeight;
    const popW = myNewWindow.innerWidth;
    const popH = myNewWindow.innerHeight;

    myNewWindow.document.getElementById("target").style.top = e.clientY / mainH * popH;
    myNewWindow.document.getElementById("target").style.left = e.clientX / mainW * popW;
});

通过这里的工作示例:https://jsfiddle.net/nogare/1tejzmux/

注意,您需要启用弹出窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74179986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档