我目前正在研究 HTML/CSS/Javascript。我有一个名为 message 的 div id 和一个显示消息的 javascript 函数,并且在这么多秒后调用另一个函数来隐藏它。
这一切都非常有效,除了第一次调用 showMessage 函数时消息 div 被稍微向右推(非常明显不在屏幕中央),然后在 5 秒后 hideMessage 运行并隐藏分区消息。
如果我随后再次调用 showMessage 函数,则 div 会正确地位于屏幕中间。
id 消息的 css 只得到 display: none;
。
下面是 showMessage 函数在显示 div 之前添加的 messageError 类的 css。
.messageError
{
position: absolute;
top: -48px;
width: auto;
margin-left: auto;
margin-right: auto;
text-align: center;
background-color: #ff3d3d;
border: #c10000 solid thin;
border-radius: 5px;
color: white;
font-weight: bold;
}
下面是javascript使用的代码
function showMessage(persistent, message, type)
{
$('#message').css({
position:'absolute',
padding: '10px',
left: ($(window).width() - $('#message').outerWidth())/2
});
$("#message")
.hide()
.html(message);
if (type == "error")
{
$("#message").addClass("messageError");
}
else if (type == "workingComplete")
{
$("#message").addClass("messageWorkingComplete");
}
$("#message").fadeIn("slow");
if (!persistent)
{
setTimeout("hideMessage()", 5000);
}
}
function hideMessage()
{
$("#message")
.fadeOut("slow");
removeClass("messageError")
.removeClass("messageWorkingComplete")
}
我怎样才能让 div 第一次出现在中间而不需要关闭和重新加载使其出现在中间。
感谢您提供的任何帮助。
最佳答案
通常,我不喜欢用:
width:auto;
如果你试图让一个 div 居中。 分配一个宽度,
margin:0 auto;
可以做到这一点。 还注意到您分配了一个没有在您的问题上发布的 css 的类。这也可能是问题所在。 如果您使用 chrome,在查看结果后,右键单击它,然后使用“检查”元素。这将打开检查器并向您显示所有可以引导您找到问题所在的 css(以及其他非常有用的东西)。 问候 路易斯
关于jquery - 在页面中间居中 Div 在第二次显示之前不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755477/