javascript - 如何将一个 div 覆盖在另一个之上?

标签 javascript html css

当我将鼠标悬停在 id 为 1 的 div 上时,会出现对话框,但 id 为 3 的 div 会向右移动。

我希望对话框出现在 id 为 3 的 div 上,而不是向右移动。

HTML 页面

<!DOCTYPE html>
<html>
<head>
<style>
div{
width:300px;
height:300px;
border:1px solid #000000;
float:left;
margin-left:10px;
}
#one,#three{
position:relative;
}
#two,#four{
margin:0;
padding:0;
left:334px;
top:100px;
background-color:#3B3B3B;
border:none;
width:200px;
height:100px;
display:none;
position:relative;
left:14px;
}
#triangleone,#triangletwo{
margin:0;
padding:0;
width: 0;
height: 0;
border-color:transparent;
border-top: 8px solid transparent;
border-right: 14px solid #3B3B3B;
border-bottom: 8px solid transparent;
top:35px;
display:none;
position:relative;

}
#dialogboxone,#dialogboxtwo{
margin:0;
padding:0;
width:214px;
display:none;
border:none;
}
</style>
<script>
var timer;
function showDialogBox(idOne,idTwo,idThree){
var firstSideBar=document.getElementById(idOne);
var secondSideBar=document.getElementById(idTwo);
var dialogBox=document.getElementById(idThree);
timer=setTimeout(function(){
firstSideBar.style.display="block";
secondSideBar.style.display="block";
dialogBox.style.display="block";
},800);
}
function hideDialogBox(idOne,idTwo,idThree){
clearTimeout(timer);
var firstSideBar=document.getElementById(idOne);
var secondSideBar=document.getElementById(idTwo);
var dialogBox=document.getElementById(idThree);
firstSideBar.style.display="none";
secondSideBar.style.display="none";
dialogBox.style.display="none";
}
</script>
</head>
<body>
<div id="one" onmouseover="showDialogBox('two','triangleone','dialogboxone')" onmouseout=hideDialogBox('two','triangleone','dialogboxone')></div>
<div id="dialogboxone">
<div id="two"></div>
<div id="triangleone"></div>
</div>
<div id="three" onmouseover="showDialogBox('four','triangletwo','dialogboxtwo')" onmouseout="hideDialogBox('four','triangletwo','dialogboxtwo')"></div>
<div id="dialogboxtwo">
<div id="four"></div>
<div id="triangletwo"></div>
</div>
</body>
</html>

最佳答案

您需要一个包装器来定位对话框:

<div class="wrapper">
    <div id="one"></div>

    <div id="dialogone"></div>
</div>

然后您需要相对定位包装器,并根据您的喜好定位它们(​​例如使用float)。对话框可以绝对定位,例如:position: absolute; left: 100% 将它们放置在右侧的包装外。

JSFiddle example

注意:请尝试将您的代码格式化为更具可读性,使用缩进和空格...当您使用英语编写时,您也使用空格,是吗?

关于javascript - 如何将一个 div 覆盖在另一个之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26870353/

相关文章:

html - Css 背景图片根本不显示

javascript - 将第二个范围传递给指令

带有 iFrame 位置的 jQuery UI 对话框与多个对话框

html - 如何使用 CSS 添加子子菜单

javascript - 当键盘在移动设备上可见时,jQuery/js/html5 更改页面内容

html - 使用 CSS Grid 和 Flexbox 水平对齐位于不同网格单元格中的元素

溢出可见时 CSS 背景消失

javascript - JQuery AJAX 未将 UTF-8 发送到我的服务器,仅在 IE 中

javascript - Jquery 平滑滚动 Onclick

javascript - 如何在jquery ajax调用中使用变量作为url参数?