2011-12-15 5 views
0

に表示される前に、私は要素を非表示にすることができます任意のイベントのjQueryやJavaScriptは、今私はonreadyイベントハンドラは、彼らは、ブラウザ

$(function() { 
    $('element').hide(); 
}); 

しかし要素は、それがブラウザに表示された後にのみ、隠れているを持っています。そしてそれはフラッシュのように消える。

ブラウザにコンテンツが表示される前にhide()関数をバインドできますか?

+0

私はCSSスタイルを使用する方が良いと思います:display = none ;.その要素を表示する必要があるときは、display = blockを使用できます。 – Unknown

+0

同じトピックを扱うこの[question](http://stackoverflow.com/questions/8494008/tips-for-gracefully-loading-a-web-page)を参照してください。 –

答えて

4

ブラウザにコンテンツが表示される前にhide()関数をバインドできますか?

いいえ。DOMは、javascriptで操作できるようにするには、最初に読み込む必要があります。最良の方法は、CSSを使用して要素をサーバー側から隠すだけで、ページがロードされたときに表示されないようにすることです。

.hidden { 
    display: none; 
} 

、その後、あなたの要素に適用します:だからあなたのCSSファイルに隠されたクラスを定義する

<div class="hidden">some hidden content</div> 
+1

これに注意してください.Javascriptが無効になっているユーザーは、決してコンテンツを見ることはありません。 –

+0

@AndrewMarshall、javascriptを無効にしているユーザーのために、正常な縮退を行うことができます。ページをリロードするリンクを提供し、レンダリング時に2回目にサーバー側の隠しクラスを削除します。したがって、コンテンツが表示されます。 JavaScriptを無効にしてDOMを再読み込みせずに操作することはできないため、ページをリロードして変更を確認するだけです。 –

+0

さらに、[Modernizr](http://www.modernizr.com/)のようなものを使って ''要素に 'js'クラスを追加し、' 'があるときに隠しスタイルだけを適用してください'js'クラスです。 –

0

あなたの要素に、このようなクラスを適用することができなかった理由があります

HTML

<div class="s-hidden">Hello foo!</div> 

CSSまだあなたの内容を読み出しますvisibility:hiddenもスクリーン読者からの要素を隠すこと

.s-hidden { display: none; visibility: hidden; } 

注意、

これをオフのままにあなたがそれを必要なときにそれを示して?

0

JavaScriptを使用して正しくアクセスして変更するには、DOMが読み込まれている必要があります。 CSSを使用して要素を非表示にする必要があります。その後、DOMの読み込みが終了したら、好きなように表示できます。

0

使用CSSは、要素を非表示にするには:

表示:なし;