Подтвердить что ты не робот

JavaScript - Скрыть div при запуске (загрузка)

У меня есть div на моей странице php, который использует jQuery, чтобы скрыть его после загрузки страницы. Но есть ли способ скрыть его с самого начала загрузки?

Причина, о которой я прошу, заключается в том, что в течение короткой секунды вы можете видеть div при загрузке страницы, а затем скрывается, когда страница полностью загружена.

Он выглядит непрофессиональным.

Просто интересно, есть ли способ обойти это?

Спасибо

4b9b3361

Ответ 1

Используйте стиль css, чтобы скрыть div.

#selector { display: none; }

или используйте его, как показано ниже,

CSS

.hidden { display: none; }

HTML

<div id="blah" class="hidden"><!-- div content --></div>

и в jQuery

 $(function () {
     $('#blah').removeClass('hidden');
 });

Ответ 2

У меня была такая же проблема.

Использовать CSS для скрытия - не лучшее решение, потому что иногда вы хотите, чтобы пользователи без JS могли видеть div. Самое чистое решение - скрыть div с помощью JQuery. Но div видно около 0,5 секунды, что проблематично, если div находится в верхней части страницы.

В этих случаях я использую промежуточное решение без JQuery. Это работает и немедленно:

<script>document.write('<style>.js_hidden { display: none; }</style>');</script>

<div class="js_hidden">This div will be hidden for JS users, and visible for non JS users.</div>

Конечно, вы можете добавить все эффекты, которые вы хотите использовать в div, JQuery toggle(), например. И вы получите лучшее поведение (imho):

  • для пользователей, не являющихся пользователями JS, div отображается напрямую
  • для пользователей JS, div скрыт и имеет эффект переключения.

Ответ 3

Запрет решения CSS. Самый быстрый способ - немедленно скрыть его с помощью script.

<div id="hideme"></div>
<script type="text/javascript">
    $("#hideme").hide();
</script>

В этом случае я бы рекомендовал решение Vega от Vega. Но если вам нужно что-то более сложное (например, анимация), вы можете использовать этот подход.

У этого есть некоторые осложнения (см. комментарии ниже). Если вы хотите, чтобы этот кусок script выполнялся как можно быстрее, вы не можете использовать jQuery, используйте только родной JS и откладывайте загрузку всех других скриптов.

Ответ 4

Этот метод я использовал много, не уверен, что это очень хороший способ, но он отлично подходит для моих нужд.

<html>
<head>  
    <script language="JavaScript">
    function setVisibility(id, visibility) {
    document.getElementById(id).style.display = visibility;
    }
    </script>
</head>
<body>
    <div id="HiddenStuff1" style="display:none">
    CONTENT TO HIDE 1
    </div>
    <div id="HiddenStuff2" style="display:none">
    CONTENT TO HIDE 2
    </div>
    <div id="HiddenStuff3" style="display:none">
    CONTENT TO HIDE 3
    </div>
    <input id="YOUR ID" title="HIDDEN STUFF 1" type=button name=type value='HIDDEN STUFF 1' onclick="setVisibility('HiddenStuff1', 'inline');setVisibility('HiddenStuff2', 'none');setVisibility('HiddenStuff3', 'none');";>
    <input id="YOUR ID" title="HIDDEN STUFF 2" type=button name=type value='HIDDEN STUFF 2' onclick="setVisibility('HiddenStuff1', 'none');setVisibility('HiddenStuff2', 'inline');setVisibility('HiddenStuff3', 'none');";>
    <input id="YOUR ID" title="HIDDEN STUFF 3" type=button name=type value='HIDDEN STUFF 3' onclick="setVisibility('HiddenStuff1', 'none');setVisibility('HiddenStuff2', 'none');setVisibility('HiddenStuff3', 'inline');";>
</body>
</html>

Ответ 5

Почему бы не добавить "display: none;" к атрибуту стиля divs? Thats вся функция JQuery.hide() делает.

Ответ 6

С помощью CSS вы можете просто установить отображение: none для элемента в файле CSS или в атрибуте style

#div { display:none; }
<div id="div"></div>



<div style="display:none"></div>

или с js сразу после того, как div может быть достаточно быстрым, но не так, как чистый