Javascript 在父对象内使用translateX不断移动对象,什么';我的计算错了吗?

Javascript 在父对象内使用translateX不断移动对象,什么';我的计算错了吗?,javascript,html,dom,Javascript,Html,Dom,我正在使用(但我认为这与此无关)它不断调用我的函数computeminextransletse,以便在父对象中移动目标,而不会溢出 我的假设是: translateX最小值由目标x偏移量减去容器x偏移量得出 translateX最大值由容器宽度减去元素宽度减去元素x偏移量得出(因为应考虑上一个位置) 我的推理有问题吗?它不工作了,目标溢出了容器。以下是我编写的函数: const computeMinMaxTranslateX = (element, container) => {

我正在使用(但我认为这与此无关)它不断调用我的函数
computeminextransletse
,以便在父对象中移动目标,而不会溢出

我的假设是:

  • translateX
    最小值由目标x偏移量减去容器x偏移量得出
  • translateX
    最大值由容器宽度减去元素宽度减去元素x偏移量得出(因为应考虑上一个位置)
我的推理有问题吗?它不工作了,目标溢出了容器。以下是我编写的函数:

const computeMinMaxTranslateX = (element, container) => {
  const {
    x: elementX,
    width: elementWidth,
  } = element.getBoundingClientRect();
  const {
    x: containerX,
    width: containerWidth,
  } = container.getBoundingClientRect();

  return {
    min: -(elementX - containerX),
    max: containerWidth - (elementX - containerX) - elementWidth
  };
};

也许
translateX
不添加到,而是替换
elementX
,所以您不需要考虑这一点。简单地
min:containerX,max:containerWidth+containerX-elementWidth