Javascript - event.clientX & style.left - 数学运算

Javascript - event.clientX & style.left - Mathematical Operations

我在这里遇到了一个小问题。让我解释一下:

document.getElementById(" ... ").style.left(对象的水平位置)将 return 这样的值:100px1129px.

event.clientX(鼠标指针的水平位置)将 return 这样的值:1001337

我想让数学在这两者之间发生。例如:var x = ( document.getElementById(" ... ").style.left ) + (event.clientX )

当一个 return 的值带有 px 而另一个没有时,我该怎么做?我怎样才能得到一个普通的 number/px-number 呢?仅添加 (event.clientX) + "px"document.getElementById(" ... ").style.left - "px"

似乎不起作用

此致!我想如果有什么不清楚的地方请评论!

对字符串进行加法运算会使 Javascript 尝试将它们连接起来,而不是进行实际的数学运算。对包含非数字字符的字符串进行减法将导致 Javascript 尝试将它们转换为数字失败,并会得到 NaN.

您需要使用 parseIntdocument.getElementById(" ... ").style.left 给您的字符串转换为整数。 parseInt 将方便地忽略非数字字符,如 'px'.

中的那些

因此,如果 w = document.getElementById(" ... ").style.left,您可以通过 parseInt(w) 获得以像素为单位的数字。您可以对 parseInt 返回的值进行数学计算,因为它将是一个整数。