首页 > 解决方案 > JS:单击元素时我更接近哪一端

问题描述

如果有一个简单的答案,我提前道歉,我的借口是我病了,现在不能思考!

基本上我有一个元素数组,它们对应于一个带有 2 个手柄的范围滑块,基本上是 2 个覆盖范围滑块。

Monday Tuesday Wednesday Thursday Friday Saturday Sunday
 [0]     [1]      [2]      [3]     [4]     [5]     [6]
  x                                 x

我们将星期几的索引传递给函数,当然是 0-6。

我想要做的是单击一周中的某一天,然后获取哪个范围(最小/最大)滑块更接近该值。所以使用上面的例子,点击星期四意味着右边的x更近了。

单击星期二将意味着第一个x更接近,因此我可以相应地更改相应的数据。

没有显示任何代码,因为它不会真正帮助,因为这更像是一个数学问题。

谢谢。

标签: javascript

解决方案


如果leftright是从 0 到 6 的整数,代表 X 所在的天数,并且day是点击的天数:

function nearestDate(left, right, day) {
  const compare = (day - left) - (right - day);
  if (compare === 0) {
     // they're equidistant;
  } else if (compare < 0) {
     // left one's closer
  } else {
     // right one's closer
  }
}

推荐阅读