我有一个具有 CSS 边框的元素,问题是元素是空的,直到内容被 jQuery 填充,但边框从一开始就由 CSS 绘制。我希望能够做一些事情,比如 隐藏元素可见性,直到它准备好显示,然后一次性显示元素和边框。
有没有办法做到这一点?
编辑:显示内容的代码包含在里面
$(window).load(function() {
}
您可以尝试的一种方法是将元素的 CSS 设置为display:none;
. 这将隐藏元素,调用以下函数将导致元素在 DOM 加载时显示。
$(document).ready(function () {
// Put all of jQuery code in here
$("element").show(); // substitute element for whatever is needed
});
不过我不建议使用这种方法,因为一旦jQuery执行就会出现内容的突然跳转,因为display:none;
意味着页面上不会有元素的踪迹
我认为最好的方法是使用visibility:hidden
. 这将导致元素通常仍然出现的空间,但将有空白代替元素。这样,当页面加载时,内容不会突然跳转。如果你使用这个方法,你将需要使用该.css()
方法,因为.show()
本质上是将元素的 CSS 设置为display:block;
所以代码看起来像这样
$(document).ready(function () {
// Put all of jQuery code in here
$("element").css("visibility", "visible") // substitute element for whatever is needed
});
对于这两种方法,CSS 都会隐藏元素,并且该函数会等到整个 DOM 加载完毕后再执行。
最初隐藏您的项目。
$(function(){
$('selector').hide(); // Or you can just have display:none
});
在其他一些部分,一些事件用一些内容填充你的 div
....
....//some code that fills in your content
...
$('selector').show();
....
....
您可以使用 jQueryaddClass
添加获取边框的样式,或者removeClass
删除隐藏的类display:none;
并回答您的标题问题,这document.ready
就是您要寻找的!
准备好元素将起作用:
$(document.getElementsByTagName('div')[0]).ready(function() {
// do stuff when div is ready
Try this:
$('#element').bind("DOMSubtreeModified", function () {
//do stuff
});
你可以使用
$(function(){
// your code here
});
所以上面的内容会在加载 DOM 时执行。现在您需要做的就是显示您visibility:hidden
在 css 中设置的元素。
你试过.css()
吗?您可以更改元素的 css。在这里阅读更多。
最初,将其设置为隐藏,然后将其删除。