gpt4 book ai didi

javascript - 如何使 div 跟随光标,但向窗口中心移动 Xpx?

转载 作者:太空宇宙 更新时间:2023-11-04 16:27:35 25 4
gpt4 key购买 nike

Div 应该跟随光标,但根据鼠标光标所在的季度,通过 X 和 Y 轴向屏幕中心移动 20px?

像这样:/image/XDXZV.png

我用三 Angular 法求出从光标到窗口中心的向量,所以我有光标坐标、中心坐标和第三点C,但是div以奇怪的圆圈移动,我不知道我在哪里出错了。

var lt = document.getElementById('lt')
var ltPosition = lt.getBoundingClientRect();
var element = document.getElementById('element');
var mousePosX = 0;
var mousePosY = 0;

document.onmousemove = function(e){
function angle(xCursor, yCursor, xCenter, yCenter){
var distanceA = xCursor - xCenter;
var distanceB = yCursor - yCenter;
var distanceC = Math.sqrt(distanceA*distanceA + distanceB*distanceB);

var theta = Math.atan2(distanceA, distanceB);
theta *= 180 / Math.PI;

var offsetX = distanceC * Math.sin(theta);
var offsetY = distanceC * Math.cos(theta);

function follow(x,y){
element.style.left = x + "px";
element.style.top = y +"px";
}
follow(e.clientX + offsetX, e.clientY + offsetY);
}
angle(e.clientX, e.clientY, ltPosition.right, ltPosition.bottom);
}

这是 fiddle :https://jsfiddle.net/sgvpvqhc/

为了拥有此功能,我还应该在这里做什么?

最佳答案

theta *= 180/Math.PI; 在那里做什么? sincos 获取以弧度为单位的 Angular ,就像 atan 返回它一样。如果您想显示它,当然可以将其转换为度数,但在 Math API 中不需要转换。

( updated fiddle demo )

关于javascript - 如何使 div 跟随光标,但向窗口中心移动 Xpx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com