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