2012-01-26 17 views
1

いくつかのHTML要素のCSSプロパティとしてJSで計算されたデータ(例:ウィンドウサイズ)を使用する必要があります。レイアウトが変更されたためにウィンドウがちらつくのを避けるため、document.onreadyを使用する余裕はありません。 DOM要素がDOMツリーに追加された時点で実際にJS関数をトリガする必要があります。元のHTMLを読み込み中に変更する方法

私はDOMNodeInsertedイベントで試したことがありますが、JavaScriptを使用してHTMLコードのロード後に追加された要素に対してのみトリガーされたようです。

私が必要とするのは、ページの元のHTMLソースに表示されているタグを変更することです。だから、私は変更する必要があるタグのHTMLコードの直後にJavaScriptをインライン化するだけですが、このようなタグのたびにJSをインライン展開せずにこれを行う方法があります。 DOMNodeInsertedのようなものですが、元のHTMLがレンダリングされている間にトリガされます。または、これを他の方法で行うことができます.JS依存のレイアウトをロードした後(ユーザーに表示する前に適切に生成されている)、HTMLコードがページに残っている(JavaScriptからページを完全に生成しないなど) ?

更新 ここに画像のサイズを変更するためのjavascriptがあります。それは幅と高さの両方を尊重し、ウィンドウ幅/高さが画像自体より小さくなければwidht:100%またはheight:100%が機能します。

function resizeImg() { 
    var imgwidth = bgImg.width(); 
    var imgheight = bgImg.height(); 

    var winwidth = $(window).width(); 
    var winheight = $(window).height(); 

    var imgratio = imgwidth/imgheight; 

    imgwidth = winwidth; 
    imgheight = winwidth/imgratio; 


    if (imgheight < winheight) { 
     imgheight = winheight; 
     imgwidth = imgheight * imgratio; 
    } 

    $('.cover-image').css({ 
     width: winwidth+'px', 
     height: winheight+'px' 
    }); 
} 
+0

奇妙な状況のようなHTML/JavaScriptのサウンドを追加できますか?ロード後にCSSプロパティを設定しています...%のものは何ですか?またはさらに良いhttp://jsfiddle.net/ – ManseUK

+2

ディスプレイを持っています:ドキュメント本体には何もありません、あなたのjsの魔法のonloadを行い、表示に切り替える:ブロック –

+0

@ManseUK私が取り組んでいるプロジェクトにはいくつかの例があります、これが一般的にどのように処理されるのか不思議でした。特定の場合:ページ全体を(背景として)塗りつぶし、比率を保持するようにimgの幅/高さを設定します。もう1つはフッターです。これは底部:0にする必要がありますが、最小高さはブラウザーウィンドウの高さと同じにする必要があります。私はwindow.resizeで両方とも起動しますが、最初の負荷についての質問です。 –

答えて

2

スクリプトを使用して、スタイルシートを作成し、ボディのレンダリング前に新しいスタイル要素に追加することができます。

または、スタイルシートでメディアクエリを使用して、さまざまなウィンドウまたはデバイスのサイズに適したスタイルを適用できます。

関連する問題