に表示される前に、私は要素を非表示にすることができます任意のイベントのjQueryやJavaScriptは、今私はonreadyイベントハンドラは、彼らは、ブラウザ
$(function() {
$('element').hide();
});
しかし要素は、それがブラウザに表示された後にのみ、隠れているを持っています。そしてそれはフラッシュのように消える。
ブラウザにコンテンツが表示される前にhide()関数をバインドできますか?
に表示される前に、私は要素を非表示にすることができます任意のイベントのjQueryやJavaScriptは、今私はonreadyイベントハンドラは、彼らは、ブラウザ
$(function() {
$('element').hide();
});
しかし要素は、それがブラウザに表示された後にのみ、隠れているを持っています。そしてそれはフラッシュのように消える。
ブラウザにコンテンツが表示される前にhide()関数をバインドできますか?
ブラウザにコンテンツが表示される前にhide()関数をバインドできますか?
いいえ。DOMは、javascriptで操作できるようにするには、最初に読み込む必要があります。最良の方法は、CSSを使用して要素をサーバー側から隠すだけで、ページがロードされたときに表示されないようにすることです。
.hidden {
display: none;
}
、その後、あなたの要素に適用します:だからあなたのCSSファイルに隠されたクラスを定義する
<div class="hidden">some hidden content</div>
これに注意してください.Javascriptが無効になっているユーザーは、決してコンテンツを見ることはありません。 –
@AndrewMarshall、javascriptを無効にしているユーザーのために、正常な縮退を行うことができます。ページをリロードするリンクを提供し、レンダリング時に2回目にサーバー側の隠しクラスを削除します。したがって、コンテンツが表示されます。 JavaScriptを無効にしてDOMを再読み込みせずに操作することはできないため、ページをリロードして変更を確認するだけです。 –
さらに、[Modernizr](http://www.modernizr.com/)のようなものを使って ''要素に 'js'クラスを追加し、' 'があるときに隠しスタイルだけを適用してください'js'クラスです。 –
あなたの要素に、このようなクラスを適用することができなかった理由があります
HTML
<div class="s-hidden">Hello foo!</div>
CSSまだあなたの内容を読み出しますvisibility:hidden
もスクリーン読者からの要素を隠すこと
.s-hidden { display: none; visibility: hidden; }
注意、
これをオフのままにあなたがそれを必要なときにそれを示して?
JavaScriptを使用して正しくアクセスして変更するには、DOMが読み込まれている必要があります。 CSSを使用して要素を非表示にする必要があります。その後、DOMの読み込みが終了したら、好きなように表示できます。
使用CSSは、要素を非表示にするには:
表示:なし;
私はCSSスタイルを使用する方が良いと思います:display = none ;.その要素を表示する必要があるときは、display = blockを使用できます。 – Unknown
同じトピックを扱うこの[question](http://stackoverflow.com/questions/8494008/tips-for-gracefully-loading-a-web-page)を参照してください。 –