2012-01-14 12 views
1

私はかなり簡単なはずだと思うことをしようとしていますが、解決策の簡単な説明は見つかりませんでした。レスポンシブなデザインでjavascriptを条件付きでロードする

私は最初にモバイルであるレスポンシブウェブサイトを構築しています(デフォルトで320ピクセル幅)。その小さな解像度では、このサイトは1つのコラムであり、私は個々の「ボックス」が内部に含まれるコンテンツの自然な高さに拡大または縮小することを許可しています。

しかし、サイトが3つの列に展開されるより大きい解像度では、各列のボックスの高さを等しくするために小さなJavaScript関数を追加します。私は私が話して何をするさまざまな方法を見つけた

jQuery(document).ready(function() { 
    setHeight('#inner-footer .widget-area'); 
}); 

var maxHeight = 0; 
function setHeight(column) { 
    //Get all the element with class = col 
    column = $(column); 
    //Loop all the column 
    column.each(function() {  
     //Store the highest value 
     if($(this).height() > maxHeight) { 
      maxHeight = $(this).height();; 
     } 
    }); 
    //Set the height 
    column.height(maxHeight); 
} 

:私が話しています関数は、このようなものになるだろう。

  1. 私はmodernizr "load"関数(正式にはyesnope.js)を使用できます。このリンクで説明したようにニコラスZakas「isMedia」機能を搭載したカスタム機能を使用して
  2. Media Specific Javascriptまたは
  3. Media queries in the real world
で説明したように
var screenWidth = (screen.width < 768) ? true : false;
のようにjavascript関数「screenWidth」変数を使用して、カスタム

JavaScriptの知識が限られているため、実際にスクリプトを実行するためのコードを書くことができませんでした。誰でもここで私を助けることができますか?

私は私の感覚はmodernizrアプローチは、ユースケースの最大数にこの作業を行うための最も堅牢で安定した方法であることで、私はちょうどそれがクロスブラウザを動作させたいのアプローチは特に好み、などを持っていませんが、私はそれを完全には分かっていない。私はmodernizrを変更したことがないので、どのように書くか、そしてカスタムロード機能をどこに置くかはわかりません。

誰でも、modernizrアプローチやその他の解決策(または他の何か)の考えや具体的なコードがありますか?私は援助に感謝します。

+0

に役立ついくつかのpolyfillsに

https://github.com/paulirish/matchMedia.js/

希望を取り組んできました共通のものを1つのファイルにまとめ、さまざまな解像度のファイルを別々に用意しています)。私にはもっと単純な解決策と思われます。 –

答えて

2

Modernizrは、あなたがそれをあなたが最小幅は一度、それはここでは、この

if(Modernizr.mq('all and (min-width: 768px)')) { 
    // Equal height code here 
} 

のように一致させたいメディアクエリを渡す

クエリはModernizr.mq()関数を適用し、そのメディアを確認することができます768pxを超えると、関数内のコードが呼び出されるため、同じ高さのコードになります。

+0

これはまさに私が探していたものです。出来た。ありがとう。 – user1148975

+0

これはまさに私が探していたものです。出来た。ありがとう。 Edのコメントに関しては、静的CSSの変更を加えるだけで、コンテンツが動的に生成され、時間の経過とともに変化する状況は考慮されません。 divやWebサービスやAjaxコールのコンテンツ、または特集コンテンツボックスのような単純なものでいっぱいになっている場合、特定の瞬間に相対的な高さがどのようになるかはわかりません。 Javascriptは、時間の経過とともにコンテンツがどのように変化するかにかかわらず、レイアウトの適切な調整を行います。 – user1148975

+0

喜んで助けてください。あなたが気にしないなら、私の答えは受け入れられたものにすることができます。ありがとう – ianckc

0

matchMediaを使用すると、メディアクエリに基づいて特定のjを読み込むことができます。

https://developer.mozilla.org/en/DOM/window.matchMedia

ポール・アイルランドは、これがなぜあなたは適切なCSSを構築することができるとき(Javascriptを使用して、おそらくからかっ

イアン

関連する問題