2011-01-11 11 views
1

私はブラウザの幅に応じてcssファイルを追加しようとしています。ブラウザの幅に応じてCSSを追加しようとしています。助けが必要(jQuery)

この場合、ブラウザウィンドウの幅が1200より大きい場合は、CSSファイルが追加されます。私はこれを行う方法を知っているので、それはリフレッシュで動作しますが、ブラウザ上でアクティブになっている間にブラウザのサイズが変更されている場合は、CSSファイルが変更されます。ここで

は私が現時点で持っているものだ、私はおそらくあまりにもわからない間違った方向イムに行くよ:

<link rel="stylesheet" type="text/css" id="smallS" href="<?php bloginfo('template_directory'); ?>/css/default-960.css" /> 
<script> 
    $(function(){ 
     $(window).resize(function(){ 
      var w = $(window).width(); 
      if (w > '1200') { 
       document.write('<link rel="stylesheet" type="text/css" id="largeS" href="<?php bloginfo('template_directory'); ?>/css/default.css" />'); 
      } 
      else { 
       if($('#largeS').length > 0) { 
        $('#largeS').remove(); 
       } 
      } 
     }); 
    }); 
</script> 

これは私が何を探しているものを私が前に持っていたものですが、そのありません:

if ((screen.width>=1024)) 
    { 
     document.write('<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/css/default.css" />'); 
    } 

+1

ウィンドウは整数で、これを文字列 'if(w> '1200')'と比較しています。 '1200'の一重引用符を取り出してみてください。 – amosrivera

+0

@amosrivera違いはありません。 – Daryl

答えて

2

問題は、document.writeは、ドキュメントが最初に解析されたときにのみ機能し、後では機能しないということです。 DOM操作関数を代わりに使用する必要があります。あなたはjQueryのを使用しているので、これを大幅に簡素化されます。

$(window).resize(function(){ 
    if ($(window).width() > 1200) { 
     if (!$('#largeS').length) { 
      $('head').append('<link rel="stylesheet" type="text/css" id="largeS" href="<?php bloginfo('template_directory'); ?>/css/default.css" />'); 
     } 
    } 
    else { 
     $('#largeS').remove(); 
    } 
}).trigger('resize'); // invoke the handler immediately 

注これは$('head').append()を使用し、$('#largeS')の長さに不必要な検査をしないこと。

+0

ええと、働いていない:| | – Daryl

+0

@Daryl私は暗闇の中で撮影するのではなく、例のページを与えてもらえますか? – lonesomeday

+0

http://thefinishedbox.com/ - 私はatmにw3キャッシュを持っていますが、望むならそれを無効にすることができます。 – Daryl

2

CSS3を使用している場合、mediaqueriesはこれをもっとうまくやってくれます。 http://www.w3.org/TR/css3-mediaqueries/#width

例:

<link rel="stylesheet" media="screen and (min-width: 1200px)" href="/css/default.css" /> 
+1

CSS3はオプションではありません。 – Daryl

+1

メディアクエリはCSS2仕様の一部ですhttp://www.quirksmode.org/css/mediaqueries.htmlどのプラットフォームをターゲットにしていますか? – Tom

関連する問題