src
コンテキストに応じて最も適切なものを取得することにより、特定の画像タグをレスポンシブに動作させようとしています。
タグは次のようになります。
<img
id="picimg"
src="image.jpg"
srcset="image-300x281.jpg 300w,
image-1024x961.jpg 1024w,
image.jpg 1664w"
sizes="(max-width: 499px) 92vw,
(min-width: 500px) 86vw,
(min-width: 960px) 96vw, 96vw"
>
このコード スニペット ( http://blog.cloudfour.com/responsive-images-101-part-2-img-required/src
にあります) を試して、毎回どちらが有効かを確認しました。
(function() {
var currentSrc, oldSrc, imgEl;
var showPicSrc = function() {
oldSrc = currentSrc;
imgEl = document.getElementById('picimg');
currentSrc = imgEl.currentSrc || imgEl.src;
if (typeof oldSrc === 'undefined' || oldSrc !== currentSrc) {
document.getElementById('logger').innerHTML = currentSrc;
}
};
// You may wish to debounce resize if you have performance concerns
window.addEventListener('resize', showPicSrc);
window.addEventListener('load', showPicSrc);
})(window);
ただし、ブラウザとその幅に関係なく、 はsrc
決して変わらないようです (常に のようです)。image.jpg
src
属性の最後のアイテムと同じデフォルトを繰り返すことでsrcset
、結果に影響を与えているのではないかと思います。あるいは、決定要因はデフォルトのサイズ ( の最後の項目sizes
) である可能性があります。
どうぞよろしくお願いいたします。