使用Javascript调整绝对定位元素的大小
Sizing an absolute positioned element with Javascript
我试图使用div元素来模拟模式弹出对话框的效果,方法是在显示隐藏的弹出窗口时屏蔽页面。我已经设法达到了我想要的效果,但我遇到了一个问题,我无法调整这个屏蔽元素的大小以匹配加载页面的大小。如果我只是将这个div的高度设置为任意高度,那么一切都很好,只是我的页面最终比内容长得多。
以下是我试图用设置屏蔽元素高度的javascript代码
function sizeModalDiv(){
var ModalDiv = document.getElementById('ModalDiv');
var FooterDiv = document.getElementById('FooterDiv');
var FooterTop = FooterDiv.offsetTop
var PageBottom = FooterTop + FooterDiv.clientHeight;
ModalDiv.style.height = PageBottom+'px';
}
这是我的屏蔽元素的CSS
#ModalDiv{
position:absolute;
top: 0;
left: 0;
width: 100%;
height: 4000px;
z-index: 9999;
background-color:Black;
opacity: 0.7;
visibility: hidden;
}
这就是我的html代码的精髓
<body>
<div id="pagecontent">
.......
.......
.......
</div>
<div id="ModalDiv"></div>
</body>
我已经尝试了许多不同的方法来动态调整元素的大小,但似乎没有一种对我的遮罩元素的高度有任何影响。它始终保持在CSS中设置的高度。
我这哪里错了?我确信这是我所缺少的一件非常简单的事情,任何帮助都将不胜感激。
要覆盖整个窗口,可以使用以下CSS:
#ModalDiv{
position:fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 9999;
background-color:Black;
opacity: 0.7;
visibility: hidden;
}
jsFiddle的现场演示。
我认为为html
和body
设置CSS将解决您的问题。此外,如果您的页面可以有足够的内容滚动(因此弹出窗口在屏幕上),请记住使用position: fixed;
作为弹出窗口。
html{
height: 100%;
width: 100%;
margin: 0;
border: 0;
padding: 0;
}
body{
height: 100%;
width: 100%;
margin: 0;
border: 0;
padding: 0;
}
#ModalDiv{
position:absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9999;
background-color:Black;
opacity: 0.7;
visibility: hidden;
}
相关文章:
- 在Jquery detachment()和appendTo()之后定位元素
- stickyfloat无法处理绝对定位的元素
- Selenium无法在浏览器DOM中定位元素
- 从定位目标中的元素中清除类
- 如何使用jquery对元素进行排序和定位
- 在IE9中使用jQuery.change定位select元素
- spin.js/angular spinner:如何将spin定位到DOM元素中(包括plunker演示)
- 如果元素在容器外部,是否可以相对于容器以绝对定位来定位该元素
- 根据其他调整大小的html元素定位背景图像
- 将html元素定位在页面中的任何x/y坐标处
- 相对于另一个 css 元素定位一个元素,而不编辑 html
- jquery 中的元素定位
- 我可以使用什么来生成元素定位器的名称
- 旧版浏览器中的高效元素定位
- 所见即所得,具有绝对的元素定位
- 将元素定位到另一个元素的右侧
- HTML动态/响应式元素定位
- 如何在量角器中找到元素定位器
- Css /javascript用于元素定位/大小
- Jquery元素定位问题