Javascript 在特定位置打开Div

Javascript 在特定位置打开Div,javascript,html,Javascript,Html,我需要在页面上的特定位置打开一个div。当我关注文本框时,应该打开div(使其可见)。我能做这部分。问题是它会在文本框的正下方打开,当页面上没有滚动时,它会创建一个滚动条。当页面上半部分的空间大于下半部分时,我需要帮助显示文本框上方的div。这是我已经创建的,如果有人可以编辑它,它将对我有太多的帮助 下面是我如何打开div的: function openDIV(activatorCtl) { var leftpos = 0; var toppos

我需要在页面上的特定位置打开一个div。当我关注文本框时,应该打开div(使其可见)。我能做这部分。问题是它会在文本框的正下方打开,当页面上没有滚动时,它会创建一个滚动条。当页面上半部分的空间大于下半部分时,我需要帮助显示文本框上方的div。这是我已经创建的,如果有人可以编辑它,它将对我有太多的帮助

下面是我如何打开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";

        }
你是说像这样

我为toppos大于250(您的divs高度)时添加了一个if

将此元素保存在变量中,以获得较短的语句,如:

var detailsDiv = document.getElementById("divDetails");
detailsDiv.style.left = leftpos + "px";
detailsDiv.style.zIndex = "999";

编辑:我没有正确保存JSFIDLE。

行为没有任何变化。
document.getElementById("divDetails")
var detailsDiv = document.getElementById("divDetails");
detailsDiv.style.left = leftpos + "px";
detailsDiv.style.zIndex = "999";