Javascript 如何在滚动后将div放置在窗口的中心
我有一个div,它应该是窗口的中心,即使在滚动之后。如何实现Javascript 如何在滚动后将div放置在窗口的中心,javascript,html,css,Javascript,Html,Css,我有一个div,它应该是窗口的中心,即使在滚动之后。如何实现 您可以将固定宽度放置在中间,并使用一半宽度一半高度的负边距。因此,对于id为且大小为200x200的_div的div,您应该执行以下操作: #your_div { width: 200px; height: 200px; position: fixed; top: 50%; left: 50%; margin-left: -100px; margin-top: -100px; }
您可以将固定宽度放置在中间,并使用一半宽度一半高度的负边距。因此,对于id为
且大小为200x200的_div
的div,您应该执行以下操作:
#your_div {
width: 200px;
height: 200px;
position: fixed;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -100px;
}
如果您必须支持IE6,那么您必须将div元素附加到主体中,并将位置设置为“绝对”。将body元素的position属性设置为“relative”。并应用reko_t建议的其他样式。滚动时,应将div保持在中间 除此之外,我建议你在你想把一些div放在页面的中心时再考虑一个例子。如果视口的大小小于放置在中心的div,则滚动时,最终将看到div的相同部分,直到将窗口调整为大于div
要解决这个问题,您应该使用javascript解决方案,而不是纯css解决方案。您应该定义一个窗口调整侦听器。如果已调整大小的窗口的视口较小,则将div定位在视口的左上角,并禁用onscroll侦听器。如果已调整大小的窗口的视口大于div,则onscroll侦听器应应用reko_\t建议的样式 我自己也在查这篇文章,这篇文章最先出现。通过进一步研究,我发现了这个链接,我认为它是最好的跨浏览器解决方案: 基本上,要使用jquery解决IE6问题,只需考虑$(window).scrollTop()和$(window).scrollLeft()即可 希望这有帮助
史蒂夫我建议以下解决方案: 1) 在JS中,当您要显示窗口时:
{
var width = $(window).width();
var heigth = $(window).height();
var myWindow = $('.my-window');
myWindow .show('fast');
myWindow .offset(
{
left: (width - myWindow .width()) / 2 + $(window).scrollLeft(),
top: (heigth - myWindow .height()) / 2 + $(window).scrollTop()
});
}
2) 在CSS中:
.我的窗户
{
position: fixed;
}
在IE6()@kouPhax中,“fixed”不是一个受支持的位置值。我们不应该为IE6创建网站,那么就没有人会使用它,我们也不会有今天这么多的问题。我们完全不同意这一说法。MS仍承诺在2013年之前支持IE6,因此在公司环境被迫升级之前,IE6不会“消失”。为什么你要阻碍近20%的访客()只是为了表明立场?向他们发泄是公平的吗?@reko_t:成功了……谢谢,现在是2014年的中期;我们能放弃IE6吗?