Retine対応 - 環境を判別して、Retina画像へとパスを書き換える

http://blog.taiyolab.com/en/retina-supporting-web/

window.devicePixelRatio

@media only screen and (-webkit-min-device-pixel-ratio:2){...}

メディアクエリ分岐用

Retina画像はファイル名の末尾に@2xを付ける 例 file@2x.png

画像サイズが拡大しないように、必ずサイズ指定を行う

左:通常 右:retina変換(要エミュレータ確認)
view source

JavaScript

var isRetina = false;
console.log(window.devicePixelRatio);
if( window.devicePixelRatio > 1){
  isRetina = true;
}

if( isRetina ){
  var retina_images = document.querySelectorAll('img.has_retina');
  console.log(retina_images);
  for (var i = 0; i < retina_images.length; i++){
    var current_image = retina_images[i];
    //Get rendered size by pixel
    var my_size = [ current_image.clientWidth, current_image.clientHeight ];
    current_image.src = current_image.src.replace(/\.(png|gif|jpg)$/, '@2x.$1');
    // replace code here .png -> _2x.png or so
    //Set original size
    current_image.style.width = my_size[0] + 'px';
    current_image.style.height = my_size[1] + 'px';
  }
}

CSS

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-retina/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。