我有一个绝对定位的 div,最初是不可见的,它显示在被单击的元素的位置,呈现其预览(预览的顶部位置与单击的元素的顶部对齐)。当被单击的元素位置较低时,预览会呈现在原始页面边框下方,并且需要滚动。我想向上移动预览以使其底部边缘位于上一页的底部限制。问题是我使用的代码没有返回页面高度的预期值(它大于预览高度和单击元素顶部位置的总和)。
这是代码:文件1:
jQuery('elementClicked').live('click',function(){
...
jQuery("previewDiv").setTopAtClickedElement(jQuery(this));
...
}
文件 2:
jQuery.fn.setTopAtClickedElement = function (element) {
//original positioning
this.css('top', element.offset().top + 'px');
// the troublesome part where the eventual correction should be done
if (element.offset().top + this.height() > jQuery(document).height())
{
this.css('top', jQuery(document).height() - this.height() + 'px');
}
}
当我按照建议使用 Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight) 测量文档高度时,也会发生类似情况关联
你对我应该如何实现这个麻烦的代码部分有什么建议吗?
如果我说的不够清楚,请指出,谢谢