在特定位置开设Div

时间:2015-05-01 13:50:07

标签: javascript html

我需要在页面上的特定位置打开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";

        }

1 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

https://jsfiddle.net/36vdoaqo/3/

当toppos大于250(你的divs身高)

时,我添加了一个if
if(toppos <= 250)

另一个提示:

你连续4次使用这个:

document.getElementById("divDetails")

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

var detailsDiv = document.getElementById("divDetails");
detailsDiv.style.left = leftpos + "px";
detailsDiv.style.zIndex = "999";
编辑:我没有正确保存jsfiddle。