2011-12-21 6 views
3

私は応答性の高いサイトを構築していますが、ちょうどを望んでいません。小さな画面の場合は要素を非表示にします。を削除して読み込み時間を短縮します。私は、これがあれば仕事をしたい、私はクラス.widescreenだけ広い768pxjquery window.innerWidthコンテンツの削除と置き換え

よりも画面上にロードされるすべての要素に追加され

if (window.innerWidth < 768) { 
    $('.widescreen').remove(); 
} 

で、これまで取り組んでこれを持って

ユーザーは、ブラウザウィンドウのサイズを変更(またはデバイス90°ターン)ので、私はこの試みた:

$(window).resize(function() { 
    //small-screen 
    if (window.innerWidth < 768) { 
     $('.widescreen').remove(); 
    } 
    //end small-screen 
}); 

働くが、ウィンドウのサイズが変更された場合にのみ小さなサイズでロードされていませんが。私はそれが起こるだろうと推測した。

これを実現する方法はありますか?ページを読み込んだときとブラウザウィンドウのサイズを変更したときの両方で動作しますか?

次に、ウィンドウのサイズを768px以上に変更したときに、のコンテンツをバックに追加します。しかし、最初の部分が実際に可能ならば、私はそれを理解しようとします!

+0

まだ解決できましたか? – Stefan

+0

いいえ、私はコンテンツを隠すためにメディアクエリを使用しています。理想的ではありませんが、後の段階で誰かがメディアクエリに基づいてコンテンツをロードしないようにする良い方法を見つけ出すでしょう。私は現在、別の目的のために、@ abudubaの '$(window).resize'メソッドでクラスを追加/削除する作業をしています。 –

答えて

6
$(function() { 
$(window).resize(function() { 
     //small-screen 
     if (window.innerWidth < 768) { 
      $('.widescreen').remove(); 
     } 
     //end small-screen 
    }) .resize(); // trigger resize event 

}) 
+0

私より美しい;) –

+0

これは完璧に、ありがとう!これをページの先頭に置くと、読み込む前に要素が削除されることを前提にしています。モバイルデバイスで読み込み時間とページサイズが絶対最小限に保たれていることを確認してください。 –

+0

このコードを 'ready'イベント(document.ready(fn)または$(fn)のいずれか)に入れると、ドキュメントがロードされたときに私のソリューション機能が起動されます – abuduba

1

なぜ機能上のサイズをチェックするコードを置くのではなく、読み込み時にこの関数を呼び出すか、サイズを変更するときにこの関数を呼び出してください。

function checkSize() { 
    //small-screen 
    if (window.innerWidth < 768) { 
     $('.widescreen').remove(); 
    } 
    //end small-screen 
} 

checkSize(); 

$(window).resize(function() { 
    checkSize(); 
}); 
0

私はこれらの部分を隠すためにメディアクエリを使用します。

@media all and (max-width: 768px) { 
    .widescreen { display: none; } 
} 

JavaScriptを使用する場合、これはほぼ同じことです。

クライアントはHTMLをダウンロードする必要がありますが、どちらの場合も要素を隠すのではなく、要素を削除するという点はありません。

+0

ええ、コンテンツが小さなデバイス用に読み込まれていない場合、これが可能であるかどうかはわかりません。 –

+0

これは、応答(コンテンツ)がクライアントに送信される前に、サーバー側でのみ実行できます。問題は、画面解像度/ウィンドウサイズのサーバー側を知ることができない(非常に難しい)ということです。 – Stefan

+0

モバイルデバイスを検出してコンテンツを変更したり、モバイルサイトにリダイレクトすることは可能ですが、これはあなたが探しているものではないようです。 – Stefan

関連する問題