2016-05-06 5 views
0

私はJavaScriptを初めて使用しています。質問の言葉が間違っている場合は、質問に合うように変更してください。javascriptに別のメディアの視点を追加する

ブラウザの幅に基づいてURLを変更するスクリプトがあります。

私のフッター内のコードは次のようになります。上記のコードは何

<script> 
jQuery(document).ready(function(){ 
    jQuery(window).resize(function(ev) { 
     var w=jQuery(window).width(); 
     if(w>600){ 
     jQuery.each(jQuery('.resimgsm'),function(i,el){ 
      jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-nsrc')+"')") 
     }) 
     }else{ 
     jQuery.each(jQuery('.resimgsm'),function(i,el){ 
      jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-msrc')+"')") 
     }) 
     } 
    }); 
    jQuery(window).trigger('resize') 
}) 
</script> 

data-msrcがロードされ、その後、600PXまで負荷data-nsrcです。

DIVタグは次のようになります。

<div data-nsrc="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'small-post', false)[0] ?>" data-msrc="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'mobile-img', false)[0] ?>" style="background-image: url('<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'small-post', false)[0] ?>')" class="img-right resimgsm"> 

私の質問は、私はJavaScriptに別のメディアの視点を追加するにはどうすればよいのですか?私は、下記の例のコードを試してみましたが、それは変更されませんでした:

 if (w>768){ 
     jQuery.each(jQuery('.resimgsm'),function(i,el){ 
      jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-lsrc')+"')") 
     }) 
     else if(w>600){ 
     jQuery.each(jQuery('.resimgsm'),function(i,el){ 
      jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-nsrc')+"')") 
     }) 
     }else{ 
     jQuery.each(jQuery('.resimgsm'),function(i,el){ 
      jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-msrc')+"')") 
     }) 
     } 
    }); 

そしてDIVは、次のようになります。

<div data-lsrc="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'normal', false)[0] ?>" data-nsrc="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'small-post', false)[0] ?>" data-msrc="<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'mobile-img', false)[0] ?>" style="background-image: url('<?php echo wp_get_attachment_image_src(get_post_thumbnail_id(), 'normal', false)[0] ?>')" class="resimgsm"> 

の助けをありがとう。

+1

これに対してメディアクエリを使用する方がよいでしょうか? - CSSのメディアクエリの役割である、ビューポートサイズに基づく表示の違いのために多くのjsのように思えます。 – gavgrif

+0

インラインCSSを使用して応答するイメージを扱います。私のテーマは非常に複雑で、レスポンシブな画像を無限のスクロールで読み込むための最良の方法です。ブラウザの幅に基づいて画像のみを読み込みます。そして、はい、CSSメディアクエリも使用しています。 –

+0

Androidのブラウザの下位互換性は、「」 –

答えて

1

あなたの最初のifはこれを試してみてください}

を閉じていません。

if (w>768){ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-lsrc')+"')") 
    }) 
}else if(w>600){ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-nsrc')+"')") 
    }) 
}else{ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-msrc')+"')") 
    }) 
} 
+0

をサポートしていません! JavaScriptを理解し始める –

1

あなたはこのような条件を書く必要があります。私もブラケットを固定

if (w>768){ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-lsrc')+"')") 
    }) 
}else if(w>600 && w<=768){ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-nsrc')+"')") 
    }) 
}else{ 
    jQuery.each(jQuery('.resimgsm'),function(i,el){ 
     jQuery(el).attr('style',"background-image: url('"+jQuery(el).attr('data-msrc')+"')") 
    }) 
} 

注意を。とにかくこれはメディアクエストのためのものです。なぜあなたは同じことをするためにこのすべてのjsを使用する必要がありますか?

+0

助けてくれてありがとう。簡単な答えは、一部のブラウザが ''要素をサポートしていないため、インラインCSSと下位互換性によって画像を応答することです。 –

関連する問題