【发布时间】:2021-03-09 20:18:25
【问题描述】:
我之前发布过,但我更改了很多代码,但问题是一样的。我试图在鼠标移动后翻译一个元素。这是代码:
<svg id="m" width="40" height="40">
<circle cx="20" cy="20" r="20" fill="red" stroke="red" stroke-width="1"/>
</svg>
<script>
let m = document.getElementById("m");
let start = function(e) {
var speedX = Math.abs(e.movementX);
var speedY = Math.abs(e.movementY);
m.style.transform = `translate(${speedX}px, ${speedY}px)`;
};
document.addEventListener("mousemove", e => start(e));
</script>
我也想知道如何添加方向,但只有在解决了这个问题之后。非常感谢
【问题讨论】:
-
您的实际问题是什么?您的代码完全按照您的要求执行...您的意思是说圆圈总是跳回原来的位置吗?
-
它不翻译,它停留在它的位置“你的意思是说圆圈总是跳回原来的位置吗?” -> 是的
-
嗯,很奇怪,当我尝试它时,它会很快从原来的位置移动到我的鼠标方向,然后又返回。你用的是哪个浏览器?
-
mozilla firefox
-
您是否尝试过使用
e.offsetX而不是e.movementX? (Y轴相同)
标签: javascript html css animation svg