有没有办法隐藏div而不首先加载它,当我想隐藏div它首先显示为0.5秒然后隐藏它自己,然后做下面的动画,它看起来很难看,有没有办法为了避免这种情况,或者我使用js是错误的方式?
$( document ).ready(function() {
$('.errors').hide(1);
$('.errors1').hide(1);
});
$( document ).ready(function() {
$('.errors').animate({width: 'show'},1000);
$('.errors1').animate({width: 'show'},1000);
});
答案 0 :(得分:4)
使用CSS
.errors, .errors1 {
display: none;
}
你可以从你的JS中删除
$( document ).ready(function() {
$('.errors').hide(1);
$('.errors1').hide(1);
});
答案 1 :(得分:3)
很好地回答你必须将div定义为在CSS上“隐藏”。只是为什么你必须这样做的附加解释。
它与如何呈现css有关。正如SO在另一篇文章中指出的那样:
参考:How is CSS applied by the browser, and are repaints affected by it?
浏览器将HTML标记作为流读取,并将其可以应用的规则应用到目前为止看到的元素。
因此,这意味着只要浏览器知道该元素存在,就会应用css样式。因此,您的display: none
语句将立即呈现,您甚至无法在其前看到div。
div
)必须等待页面呈现完成。这就是你必须定义的原因:
$( document ).ready(function() {
它告诉浏览器首先渲染文档,然后,当它是ready
时,它可以执行javascript函数......所以,这就是为什么你可以看到一小段时间的div,以及然后JS隐藏它。
所以是的,为了从头开始隐藏它,你必须使用CSS:
.errors, .errors1 {
display: none;
}
答案 2 :(得分:1)
将以下规则添加到您的css文档中:
.errors {
display: none;
}
答案 3 :(得分:0)
用css隐藏。然后在需要时显示。
CSS:
.errors {
display: none;
}
JS(显示div):
$( document ).ready(function() {
$(".errors").fadeIn(200);
});
INLINE STYLE(不推荐)
<div class="errors" style="display:none;">ERROR MSG</div>