【发布时间】:2015-06-24 11:20:13
【问题描述】:
我正在使用我从某个地方获取的这段代码,用于学习目的。如果您能帮助我更好地理解它,我正在尝试对其进行分解并了解它是如何工作的。
此函数返回鼠标与相应元素之间的距离。
function calculateDistance(elem, mouseX, mouseY) {
return Math.floor(Math.sqrt(Math.pow(mouseX - (elem.offset().left+(elem.width()/2)), 2) + Math.pow(mouseY - (elem.offset().top+(elem.height()/2)), 2)));
}
它返回一个正数,只计算鼠标和元素之间的像素。
剥离它,只留下 Math.floor。我不知道为什么没有 math.sqrt(math.pow...) 我会得到负值,具体取决于鼠标相对于元素的位置-> left(-x)、right(x)、 above(-y)、下面(y)元素
并且还为元素获得不同的中心。
function calculateDistance(elem, mouseX, mouseY) {
return Math.floor(mouseX - (elem.offset().left+(elem.width()/2)) + mouseY - (elem.offset().top+(elem.height()/2)));
}
我知道 Math.pow 和 sqrt 自己做什么。我没有看到他们如何找到元素的中心,因为我认为 elem.offset().left+(elem.width()/2) 是在水平方向上做的,而 elem.offset().top+(elem.height()/2) 是在垂直方向上做的。
【问题讨论】:
标签: javascript math code-readability