Javascript jQuery没有';不要选择正确的div高度
我的jQuery有一个问题:我正在使用一个脚本,它允许我通过给元素一个类来居中,但是这个脚本的高度不正确 这是我的HTML代码:Javascript jQuery没有';不要选择正确的div高度,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我的jQuery有一个问题:我正在使用一个脚本,它允许我通过给元素一个类来居中,但是这个脚本的高度不正确 这是我的HTML代码: <div class="logoutscreen blackbackground"> <div class="window centered" style="display: block;"> [CONTENT HERE] </div> </div> 问题在于
<div class="logoutscreen blackbackground">
<div class="window centered" style="display: block;">
[CONTENT HERE]
</div>
</div>
问题在于,该脚本不采用以.centered类(.window)为中心的div的高度和宽度,而是采用其父类(.logoutscreen)的高度和宽度
为什么会这样(
此
不是$('.centered')
使用:
使用$(this)
是您的问题。与其他方法不同,您无法在jQuery的.css()
方法中以$('.centered')
的形式访问this
父对象…它将默认为全局窗口
对象
您要做的是缓存对象并显式引用它:
var $centered = $('.centered');
$centered.css({
position:'absolute',
left:'50%',
top:'50%',
marginLeft:((-1 * $centered.outerWidth()) / 2),
marginTop:((-1 * $centered.outerHeight()) / 2)
});
这将为您提供所需的内容。但是,如果您有多个实例,则需要执行以下操作:
$centered.each(function(){
var $self = $(this);
$self.css({
position:'absolute',
left:'50%',
top:'50%',
marginLeft:((-1 * $self.outerWidth()) / 2),
marginTop:((-1 * $self.outerHeight()) / 2)
});
});
这样,每个唯一的
高度和宽度都会得到尊重。@DOCTYPEHTML,很抱歉,我不理解您的意思。
var $centered = $('.centered');
$centered.css({
position:'absolute',
left:'50%',
top:'50%',
marginLeft:((-1 * $centered.outerWidth()) / 2),
marginTop:((-1 * $centered.outerHeight()) / 2)
});
$centered.each(function(){
var $self = $(this);
$self.css({
position:'absolute',
left:'50%',
top:'50%',
marginLeft:((-1 * $self.outerWidth()) / 2),
marginTop:((-1 * $self.outerHeight()) / 2)
});
});