如何在使用jQuery加载页面之前隐藏HTML元素

Rob*_*ert 30 html jquery

我有一些显示或隐藏div的JQuery代码.

$("div#extraControls").show();   // OR .hide()
Run Code Online (Sandbox Code Playgroud)

我最初想要div不可见所以我用过:

$(document).ready(function() {
    $("div#extraControls").hide();
});
Run Code Online (Sandbox Code Playgroud)

但是,在浏览器上,内容在消失之前加载一秒钟,这不是我想要的.

如何在页面加载之前设置隐藏元素,同时保持显示的能力使用脚本动态隐藏它?

小智 50

div.hidden
{
   display: none
}

<div id="extraControls" class="hidden">
</div>

$(document).ready(function() {
    $("div#extraControls").removeClass("hidden");
});
Run Code Online (Sandbox Code Playgroud)

  • +1需要注意的一点是,如果用户在浏览器中禁用了JavaScript,则整个页面都会隐藏. (13认同)
  • 根据我的经验,一些浏览器不会在使用`display:none`或`opacity:0`隐藏的元素中加载媒体(例如图像).我建议使用`visibility:hidden`代替. (6认同)
  • @ mq.chen感谢您的警告,但是可见性标记不允许使用.hide()命令切换内容. (2认同)

OMG*_*sen 5

创建一个 css 类

.hidden {
display: none;
}
Run Code Online (Sandbox Code Playgroud)

将此添加到您不希望在加载页面时可见的任何元素。然后使用$("div#extraControls").show();再次显示它。