Javascript 在目标元素上显示弹出div时出现问题

Javascript 在目标元素上显示弹出div时出现问题,javascript,html,css,Javascript,Html,Css,我试图在图像上显示一个弹出div onmousehave。当前,pop显示在滚动条下。我需要在div的滚动条上显示浮动弹出类型,而不是隐藏在滚动条下 提前谢谢 示例代码: CSS .popBox { margin: -50px 50px 0px 50px; z-index: 2; width: 60px; padding: 0.3em; border: 1px solid gray; } .images {

我试图在图像上显示一个弹出div onmousehave。当前,pop显示在滚动条下。我需要在div的滚动条上显示浮动弹出类型,而不是隐藏在滚动条下

提前谢谢

示例代码:

CSS

.popBox {
        margin: -50px 50px 0px 50px;
        z-index: 2;
        width: 60px;
        padding: 0.3em;
        border: 1px solid gray;
    }
.images {
        width: 50px;
        height: 50px;
        border-radius: 5px;
    }
div.scroll {
    background-color: #00FFFF;
    width:80px;
    height: 200px;
    overflow: scroll;
}
</style>
.popBox{
余量:-50px 50px 0px 50px;
z指数:2;
宽度:60px;
填充:0.3em;
边框:1px纯色灰色;
}
.图像{
宽度:50px;
高度:50px;
边界半径:5px;
}
分区卷轴{
背景色:#00FFFF;
宽度:80px;
高度:200px;
溢出:滚动;
}
JavaScript

<script>
  function showBox(text, obj) {
        helpNode = document.createElement('div');
        helpNode.id = 'popBox';
        helpNode.setAttribute('class','popBox');
        helpNode.innerHTML = text;
        obj.appendChild(helpNode);
  }

  function hideBox() {
        node = document.getElementById('popBox');
        node.parentNode.removeChild(node);
  }
</script>

功能显示框(文本,obj){
helpNode=document.createElement('div');
helpNode.id='popBox';
setAttribute('class','popBox');
helpNode.innerHTML=文本;
obj.appendChild(帮助节点);
}
函数hideBox(){
node=document.getElementById('popBox');
node.parentNode.removeChild(节点);
}
HTML

<body>

<div class="scroll" style="margin:0px auto">
 <b onMouseOver="showBox('<b>Foo1</b><br /> Bar1', this)" onmouseout="hideBox()" ><input type="image" class="images"  src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-511058.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo2</b><br /> Bar2', this)" onmouseout="hideBox()" ><input type="image" class="images"  src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-380016.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo3</b><br /> Bar3', this)" onmouseout="hideBox()" ><input type="image" class="images"   src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-293063.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo4</b><br /> Bar4', this)" onmouseout="hideBox()" ><input type="image" class="images"   src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-611834.jpg" /></b></br>

</div>

</body>
</html>






我在fiddle中尝试了您的代码,但它对我不起作用,因此肯定缺少一些内容,但要处理CSS问题,您需要在z-index'd元素中添加一个位置。因此,在您的情况下,将是这样的:

div.scroll {
background-color: #00FFFF;
width:180px;
height: 200px;
overflow: scroll;
position:relative;
z-index:-1
}
这样,弹出窗口将位于滚动条上方


此外,在我们进行此操作时,将

替换为

,或者简单地添加
。图像{display:block}
尝试添加位置:绝对;到。popBox

CSS

JavaScript

  function showBox(text, obj) {
        helpNode = document.createElement('div');
        helpNode.id = 'popBox';
        helpNode.setAttribute('class','popBox');
        helpNode.innerHTML = text;
        obj.appendChild(helpNode);
  }

  function hideBox() {
        node = document.getElementById('popBox');
        node.parentNode.removeChild(node);
  }
HTML







必须将节点附加到应用了
溢出:滚动
的元素之外。本质上,
overflow:scroll
会让你的弹出窗口需要滚动才能看到


您可能希望在元素周围添加另一个包装器div,并为其指定
position:relative
,将弹出窗口附加到新的包装器div,然后使用
position:absolute
(新包装器div上的
position:relative
使绝对定位的子元素相对于该元素绝对定位。)

尝试将position:absolute;添加到.popBox?或将其附加到滚动区域之外的元素。我尝试了一下,得到了相同的结果,但是,将其复制到HTML文件确实有效。
  function showBox(text, obj) {
        helpNode = document.createElement('div');
        helpNode.id = 'popBox';
        helpNode.setAttribute('class','popBox');
        helpNode.innerHTML = text;
        obj.appendChild(helpNode);
  }

  function hideBox() {
        node = document.getElementById('popBox');
        node.parentNode.removeChild(node);
  }
<div class="scroll" style="margin:0px auto">
    <b onMouseOver="showBox('<b>Foo1</b><br /> Bar1', this)" onmouseout="hideBox()" ><input type="image" class="images"  src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-511058.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo2</b><br /> Bar2', this)" onmouseout="hideBox()" ><input type="image" class="images"  src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-380016.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo3</b><br /> Bar3', this)" onmouseout="hideBox()" ><input type="image" class="images"   src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-293063.jpg" /></b></br>
    <b onMouseOver="showBox('<b>Foo4</b><br /> Bar4', this)" onmouseout="hideBox()" ><input type="image" class="images"   src="http://www.picgifs.com/clip-art/flowers-and-plants/flowers/clip-art-flowers-611834.jpg" /></b></br>
</div>