Javascript 如何垂直对齐具有不同高度的div?
我在有一个弹出窗口,我需要弹出的div垂直居中。将会有更多,因为它是Tumblr,而且博客有不同的帖子,所以div的高度会有所不同。我需要它垂直居中,这样内容就会向上和向下扩展。无论如何,这是可以做到的?对于垂直对齐的div,请看这里,这可能会有所帮助Javascript 如何垂直对齐具有不同高度的div?,javascript,html,css,Javascript,Html,Css,我在有一个弹出窗口,我需要弹出的div垂直居中。将会有更多,因为它是Tumblr,而且博客有不同的帖子,所以div的高度会有所不同。我需要它垂直居中,这样内容就会向上和向下扩展。无论如何,这是可以做到的?对于垂直对齐的div,请看这里,这可能会有所帮助 但就像@blender所说的,这并不是动态的。因此,我将在这里浏览以获得垂直对齐的div外观,这可能会有所帮助 但就像@blender所说的,这并不是动态的。因此,我将浏览哦,不使用CSS垂直居中。这很复杂,但请看这里: 如果设置为JS,只需按如
但就像@blender所说的,这并不是动态的。因此,我将在这里浏览以获得垂直对齐的div外观,这可能会有所帮助
但就像@blender所说的,这并不是动态的。因此,我将浏览哦,不使用CSS垂直居中。这很复杂,但请看这里: 如果设置为JS,只需按如下方式定位元素(输入粗糙,90%的几率它无法工作):
它不是很优雅,但可能有用。祝你好运(我会调整动画。这是一个很好的设计,但动画重叠会降低它的质量)。哦,不,不是用CSS垂直居中。这很复杂,但请看这里: 如果设置为JS,只需按如下方式定位元素(输入粗糙,90%的几率它无法工作):
它不是很优雅,但可能有用。祝你好运(我会调整动画。这是一个很好的设计,但动画重叠会降低它的质量)。使用以下简单HTML:
<div id="wrap">
<div id="holder">
<div id="modal">some<br>content<br>in<br>here</div>
</div>
</div>
“holder
和modal
的顶部将在wrap
中居中,但我们希望此动态内容的中心位于中心,因此使用一点简单的Javascript:
document.getElementById('modal').style.top =
"-" + document.getElementById('holder').offsetHeight/2 + "px";
…我们将模式
向上移动支架自动高度的一半,瞧!好了!您可以看到一个带有背景色的示例,以直观地指示此处发生的情况:
尝试更改modal
的内容,以查看它是否可以正常工作,而不考虑其高度。使用以下简单HTML:
<div id="wrap">
<div id="holder">
<div id="modal">some<br>content<br>in<br>here</div>
</div>
</div>
var w = $(window);
$('.modal-dialog').css({
'position': 'absolute',
'top': Math.abs(((w.height() - $('.modal-dialog').outerHeight()) / 2) + w.scrollTop())
//'left': Math.abs(((w.width() - $('.modal-dialog').outerWidth()) / 2) + w.scrollLeft())
});
$('html, body').animate({
scrollTop: $('.modal-dialog').offset().top - 50
}, 500);
“holder
和modal
的顶部将在wrap
中居中,但我们希望此动态内容的中心位于中心,因此使用一点简单的Javascript:
document.getElementById('modal').style.top =
"-" + document.getElementById('holder').offsetHeight/2 + "px";
…我们将模式
向上移动支架自动高度的一半,瞧!好了!您可以看到一个带有背景色的示例,以直观地指示此处发生的情况:
尝试更改modal
的内容,以查看它是否可以正常工作,而不考虑其高度
var w = $(window);
$('.modal-dialog').css({
'position': 'absolute',
'top': Math.abs(((w.height() - $('.modal-dialog').outerHeight()) / 2) + w.scrollTop())
//'left': Math.abs(((w.width() - $('.modal-dialog').outerWidth()) / 2) + w.scrollLeft())
});
$('html, body').animate({
scrollTop: $('.modal-dialog').offset().top - 50
}, 500);
这段脚本将满足您的要求。
$('.modal dialog')-这是要垂直集中的div。
请参阅代码上的注释行。如果还希望水平集中,请取消注释
这段脚本将满足您的要求。
$('.modal dialog')-这是要垂直集中的div。
请参阅代码上的注释行。如果您还想水平集中,请取消注释。对不起,请返回我必须编辑的链接,错误的页面lol。这样可以水平对齐。它可以工作,但对于宽度和高度已知的内容。如果它是动态的,你就不走运了。对不起,请回到我不得不编辑它的链接,错误的页面lol。这会使它水平对齐。它可以工作,但是对于宽度和高度已知的内容。如果它是动态的,你就不走运了。如果这不起作用,你可以看看这个:D谢谢,我会用它的!这只适用于固定高度的内容还是动态内容?如果这不起作用,你可以检查:D谢谢,我会使用它!这只适用于固定高度的内容还是动态的内容?查看页面,看看新问题是什么:(我觉得这可能有效,但有一些奇怪的情况。这不起作用:(()如果是一个div,则有效,但我有多个不同高度的div。查看页面,看看新问题是什么:(我觉得这可能行得通,但有点奇怪。这行不通:)如果是一个div,它就行,但我有多个不同高度的div。