STERFIELD
開発ナレッジ2013.08.07

レスポンシブデザインでPCとスマホで画像を切替える方法

レスポンシブデザインでwebサイトを制作することが多くなってきていますが、
その中でスマホの場合を考えられてないケースが多々あります。

本来であればレスポンシブの構造上、スマホファーストで考えるべきところなのですが、
PC先行でデザインし、後でスマホをどうにかするってパターンになってしまっています。。。

そういった場合、
レスポンシブデザインはもちろん同じ一つのソースなので、
同じ画像ではダメなことがあります。

しっかりスマホファーストで考えていても、
PCは横長でスマホは縦長なので、
サイズを違うものにしたい場合もあると思います。

そんな時、PCとスマホで画像を切り替える必要があります。

元々htmlに両方書いておいて、
cssでdisplayをnoneやblockにするというあまり良くない方法もありますが、
今回はjQueryを使用した方法をご紹介します。

jQueryを使ってレスポンシブデザインでPCとスマホで画像を切替える方法

どういうものかというと、特に難しいことではなく、
windowのサイズを測って、設定したい数値以下であれば、
imgのパスを変えるというものです。

一応デモもあります。(大したデモじゃないです・・・)

 

DEMO

 

jQueryを読み込んで、
以下のソースを直書きか、別ファイルに記述して読み込ませます。

 

javascript

 

あとは以下のように変更させたいimgにclass「imgChange」を付けます。

 

html

 

これだけで、「imgChange」とつけたものは、一括で変更されます。

 

一つ一つ変更したい場合は、eachを使わずに記述すればいいんですが、
画像切り替えたいものを一つ一つ書くのはめんどくさいので、
classをつけるだけで、変更される方が簡単ですよね。

ただ、これはスマホの場合、
PCとスマホの画像を読み込むので、ちょっとロードのパフォーマンスが落ちちゃう可能性があります。

 

二重に読み込ませない方法

この方法はもしかしたら他のことに影響あるかもしれませんし、ieとかで動かないかもしれませんが、
srcを空にして、data属性というものを使用します。

data属性とは?

html


javascript

となります。

ちなみにデモの最後の画像はこちらの方法で設定しています。

とはいえ極力違う画像使うのは避けたいですね〜。
レスポンシブのメリットが損なわれてるわけですからね・・・

WRITER

スターフィールド編集部

この著者の記事を見る

CONTACT

記事の内容について
相談したい方へ

実際の進め方は、状況を伺ってからご提案します。

2営業日以内にご返信します
資料ダウンロード無料相談に申し込む