用于相对于用户在约束内单击的位置定位框的数学公式

Math formula for positioning a box relative to where the user clicked within constraints?

本文关键字:位置 定位 数学公式 单击 相对于 用户 约束 用于      更新时间:2023-09-26

这对我来说很难解释,但我正在寻找一个数学公式,它定义了框弹出的位置相对于用户在一列行中单击的位置。

下面试图阐明我的意思:https://i.stack.imgur.com/f73ST.jpg

红色圆圈是用户在左侧列中单击的位置,右侧的框是弹出的位置。因此,当用户单击列底部的行时,该框应弹出,以便底部边缘与列的底部对齐。如果用户在中间单击,则应将其与中间对齐。这样,弹出的框永远不会超过左侧列的高度,因此用户永远不必滚动。

这有意义吗?我可以使用CSS来设置框的绝对位置,但我只需要一个公式来计算它应该在哪里。

我认为没有一个公式可以满足这个条件,但是通过一些编程,你可以让它工作。你从显而易见的开始:

top    := click.y - height / 2
bottom := click.y + height / 2

然后你优化它:

if bottom > container.height -> 
    bottom := container.height
    top    := MAX(0, bottom - height)
elif top < 0 ->
    top    := 0
    bottom := MIN(container.height, height)
fi