レスポンシブウェブデザインの画像サイズをスマホに最適化

この記事はa-blog cms Advent Calendar 2013に参加しています。
22日の担当です。

この記事で、できるようになること


図のように、レスポンシブウェブデザインでありながら
スマホに対応した小さい画像を出せるようになります。

この記事の前提と、レスポンシブデザインの問題点

a-blog cmsのバージョン2.0ではテーマ「site2014」もレスポンシブウェブデザインになりました。

スポンシブウェブデザインは1つのHTMLを用意すれば、異なったデバイスの画面サイズに適応できて便利です。
しかし、表示する画像も同じになるため、スマホで見たときにもPCで表示される画像と同じサイズの画像を読み込むことになります。
もしも幅1200pxの大きな画像を何枚か使ったページをスマホで読み込むと、表示までの時間がかかってしまいます。

この問題は、テーマ「site2014」「blog2014」でも発生します。
今後はsite2014を元にしてサイト制作を進める機会も増えると思ったので、この記事を書くことにしました。

設定方法

1.systemフォルダから、適用しているテーマにunit.htmlをコピーする


場所は
themes/system/include/unit.html
です。
1.7の頃はunit.htmlではなく
themes/system/include/column.html
ですね。

2.unit.htmlの画像に関する記述を書き換える。



にクラスを追加して、画像の変数を変更。data-width=""という記述も加えます。

▼これコピペでいけます。

<img class="columnImage js-adaptive_image" src="%{ROOT_DIR}{tinyPath}" alt="{alt}" width="{tinyX}" height="{tinyY}" data-width="{x}" data-height="{y}" />

以上です。

できました!


ブラウザを小さくして確認する場合は再読込すれば、tiny画像を読み込みます。
※このブログでは対応してません。すみません。

画像サイズに関するオプション

スマホ用画像のサイズ設定


この方法はtiny画像を読み込んで画像の最適化をしています。
tiny画像のサイズを指定すると、どのサイズでtiny画像を表示するかを設定できます。

tiny画像を読み込む条件を、ブラウザの幅によって設定

/js/config.jsの「// adaptive image sizing」箇所を変更することで、いくつのブラウザ幅になったときにtiny画像を読み込むか設定可能です。
初期値は500pxになっています。
組み込みのJavaScriptを変更する際はこちらも参考にしてください。
「組み込みのJavaScriptの設定を編集する | 組み込みのJavascript | サポート・マニュアル | a-blog cms - Web制作者のためのCMS」

解決方法はすでに公式サイトに載っていました。

スマートフォン用に小さいサイズの画像を表示する(adaptive_image) | 組み込みのJavascript | サポート・マニュアル | a-blog cms - Web制作者のためのCMS

わざわざ書くことも無いかな〜とも思いました。
でも、個人的に一度試してみたかったので書いてみました。

僕は仕事で日常的にコードを触れる職域ではないので、カスタマイズ方法を探すときに
「どこ見ていいのか、分からないです・・・。どうしよう。こんな当然なこと質問していいのかな。」
となりがちです。
そんな僕もa-blog cmsの Advent Calendar 2011は見ていたりしたので、
自分みたいな人のために、この記事も参考になればいいかな〜と思います。


投稿者名 すずきカレー 投稿日時 2013年12月22日 | Permalink