如何改善元素位置的计算?

时间:2016-08-04 12:41:51

标签: javascript jquery

我有一个maven-jar-plugin,用于打印有关我点击的元素的父元素的信息。这意味着div元素没有固定的宽度和高度。

我需要计算元素div#panel的位置,该面板使用CSS样式div#panelleft定位。我的目标是将top保留在屏幕上,它不应该超出当前视图/屏幕。

我的计算如下:

div#panel

它几乎完美地工作,但是在客户区底部附近,在底部滚动条(20-40px)的上方,该元素不适合屏幕。当我点击太靠近底部滚动条时,它会在滚动条下方消失。我怎样才能纠正或改善y位置的计算?

PS:我现在不需要更正x因为计算应该与y ...类似。

1 个答案:

答案 0 :(得分:0)

最后我发现问题出在第一个条件,而不是最后一个条件。

if ( e.clientY > ClientH - h)
    y = offsetY + e.clientY - h;
else
  if ( e.clientY < 0 + h )
    y = offsetY + e.clientY + (h-e.clientY);
  else
    y = e.clientY < ClientH/2 ? offsetY + e.clientY - h/2 : offsetY + ( e.clientY > ClientH-h? ClientH-h : e.clientY+h/2 ) ;    

应该是通用解决方案。当你需要你的盒子适合当前视图时非常有用。