gpt4 book ai didi

javascript - onDrag 事件在鼠标释放时引发不连贯的值

转载 作者:行者123 更新时间:2023-11-30 16:30:04 28 4
gpt4 key购买 nike

我远不是 html/javascript 专家,我对这个问题很着迷。在网上没有找到与此相关的任何信息,我尝试了多种方法但没有成功。

基本上,我使用拖动功能来实现某些目标。我真的不需要拖放,我只对拖放感兴趣。

这是一个非常非常简单的示例来说明我的问题:

https://jsfiddle.net/fhdoLz70/2/

div 可以四处拖动,我正在记录 event.clientX 值。拖动期间值是正确的,但是当我释放鼠标时,onDrag 事件再次引发,并且 clientX 值不连贯(完全超出范围,负值) . clientY 和可能与事件关联的其他值也会发生同样的情况(对其他值不感兴趣,但 clientXclientY 所以我没有检查).

为什么在释放鼠标时引发 onDrag?拖累结束了......为什么它拥有如此奇怪的值(value)观?我怎样才能避免在鼠标释放时收到最后一个事件?

非常感谢。

最佳答案

您看到的是 jsfiddle 的一个奇怪之处。 ondrag 事件将在发布时触发,但通常会返回零。如果您使用相同的代码并将其放在这样的独立文件中:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>DragTest</title>
<style>
.dragDiv {
width: 100%;
height: 50px;
background-color: red;
}
</style>
</head>
<body>
<div draggable="true" class="dragDiv" ondrag="handleDrag(event)"/>
<script>
function handleDrag(evt){
console.log(evt.clientX);
}
</script>
</body>
</html>

您的控制台将记录 0 而不是疯狂的数字。要捕捉最后一个事件,请记住在发布时会触发一个 ondragend 事件。你可以在那里做处理。

关于javascript - onDrag 事件在鼠标释放时引发不连贯的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445162/

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