我有一个maven-jar-plugin
,用于打印有关我点击的元素的父元素的信息。这意味着div元素没有固定的宽度和高度。
我需要计算元素div#panel的位置,该面板使用CSS样式div#panel
和left
定位。我的目标是将top
保留在屏幕上,它不应该超出当前视图/屏幕。
我的计算如下:
div#panel
它几乎完美地工作,但是在客户区底部附近,在底部滚动条(20-40px)的上方,该元素不适合屏幕。当我点击太靠近底部滚动条时,它会在滚动条下方消失。我怎样才能纠正或改善y位置的计算?
PS:我现在不需要更正x因为计算应该与y ...类似。
答案 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 ) ;
应该是通用解决方案。当你需要你的盒子适合当前视图时非常有用。