Javascript 翻译后的元素回到原点?

Javascript 翻译后的元素回到原点?,javascript,html,css,animation,svg,Javascript,Html,Css,Animation,Svg,我以前发布过,但是我修改了很多代码,但问题是一样的。我正在尝试在鼠标移动后转换元素。代码如下: 设m=document.getElementById(“m”); 让我们开始=函数(e){ var speedX=数学绝对值(e.movementX); var=数学绝对值(如移动); m、 style.transform=`translate(${speedX}px,${speedY}px)`; }; document.addEventListener(“mousemove”,e=>start(

我以前发布过,但是我修改了很多代码,但问题是一样的。我正在尝试在鼠标移动后转换元素。代码如下:


设m=document.getElementById(“m”);
让我们开始=函数(e){
var speedX=数学绝对值(e.movementX);
var=数学绝对值(如移动);
m、 style.transform=`translate(${speedX}px,${speedY}px)`;
};
document.addEventListener(“mousemove”,e=>start(e));

您正在使位置与当前移动相等

您需要的是将移动(不是绝对值)添加到当前位置

记住:
位置=位置+速度

您还可以通过在单击时移动它来改进行为,以避免它离开屏幕并进行不必要的移动

例如:

让m=document.getElementById(“m”);
设posX=0;
设posY=0;
让更新=函数(e){
posX+=e.movementX;
posY+=e.movementY;
m、 style.transform=`translate(${posX}px,${posY}px)`;
};
//鼠标向下移动时聆听运动。
document.addEventListener(“mousedown”,()=>{
文件。添加的文件列表(“mousemove”,更新);
});
//鼠标悬停时移除移动。
document.addEventListener(“mouseup”,()=>{
文件。removeEventListener(“mousemove”,更新);
});


您的实际问题是什么?你的代码完全按照你说的做。。。你的意思是圆总是跳回到它原来的位置吗?它不平移,它保持在原来的位置。“你的意思是圆总是跳回到它原来的位置吗?”->是的,很奇怪,当我尝试它时,它很快地从原来的位置移动到我鼠标的方向,然后再返回。您正在使用哪个浏览器?mozilla Firefox您是否尝试使用
e.offsetX
而不是
e.movementX
?(Y轴也是如此)非常感谢你的努力,但是为什么没有添加posX和Y它就不起作用呢?这就像现实生活一样,如果你以每小时1公里的速度移动,并且你使用这个速度作为你的位置,你将永远处于1公里的位置。相反,你有一个位置,它会被速度“修改”。