我需要在页面上的特定位置打开div。当我专注于文本框时,应该打开div(使其可见)。我能够做到这一点。问题是它在文本框的正下方打开,当页面上没有滚动时,它会创建一个。当页面的上半部分和页面的下半部分有更多空间时,我需要帮助在文本框上方显示div。这是我创建的https://api.jquery.com/on/,如果有人可以编辑它,对我来说太过帮助了。
这就是我打开div的方式:
function openDIV(activatorCtl) {
var leftpos = 0;
var toppos = 0;
var sScrollTop = getScrollTop;
var aTag = activatorCtl;
do {
aTag = aTag.offsetParent;
sScrollTop = (aTag.scrollTop > sScrollTop) ? aTag.scrollTop : sScrollTop;
leftpos += aTag.offsetLeft;
toppos += aTag.offsetTop;
} while (aTag.tagName != 'BODY');
document.getElementById("divDetails").style.left = leftpos + "px";
document.getElementById("divDetails").style.top = toppos + 20 + "px";
document.getElementById("divDetails").style.zIndex = "999";
document.getElementById("divDetails").style.visibility = "visible";
}
答案 0 :(得分:0)
你的意思是这样吗?
https://jsfiddle.net/36vdoaqo/3/
当toppos大于250(你的divs身高)
时,我添加了一个ifif(toppos <= 250)
另一个提示:
你连续4次使用这个:
document.getElementById("divDetails")
将此元素保存在变量中以获取更短的语句,如:
var detailsDiv = document.getElementById("divDetails");
detailsDiv.style.left = leftpos + "px";
detailsDiv.style.zIndex = "999";
编辑:我没有正确保存jsfiddle。