現在、レスポンシブな背景画像を JavaScript で設定するためのソリューションの構築に取り組んでいます。クロス ブラウザー サポートを作成するために、Picturefill を使用しています。
私が必要なものは何?私のページには、かなり小さな背景写真が必要な要素があります。ページには、条件付きで画像をロードする画像要素があります。ただし、ブラウザが適切な画像要素をサポートしていない場合は、デフォルトの画像ソースを 1 つ指定しました。
MooTools を使用して、どの写真が domready に表示されるかを確認し、ウィンドウのサイズ変更時に、イメージの 'src' をもう一度チェックして、必要に応じて現在の写真を (大きいまたは小さいものに) 置き換えます。
FireFox では、picture 要素が DOM の画像 'src' を置き換えます。これは完璧に機能します!
Chrome (および IE) は画像の 'src' を置き換えないため、私の写真は常に MooTools によるデフォルトの写真の寸法になります。ただし、Chrome デベロッパー ツールを使用して画像「src」にカーソルを合わせると、そのメディア クエリの正しい画像ソースが表示されます。
あまりにも多くの詳細を得ることができますが、私は本当に上記のようにそれを行う必要があると信じています. 誰がこれを手伝ってくれますか? :)
<script>
var Placeholder = $('Placeholder');
var CoverImage = $('MyCover').getElement('img').src;
Placeholder.setStyle('background-image', 'url(' + CoverImage + ')');
var $timer = null;
window.addEvent('resize', function(){
var ResponsiveImage = function(){
var $ResponsiveImage = $('MyCover').getElement('img').src;
$('Placeholder').setStyle('background-image', 'url(' + $ResponsiveImage + ')');
};
clearTimeout($timer);
$timer = ResponsiveImage.delay(250, this);
});
</script>
<picture>
<source media="all and (max-width: 30em)" srcset="1.jpg">
<source media="all and (min-width: 30.063em) and (max-width: 48em)" srcset="2.jpg">
<source media="all and (min-width: 48.063em) and (max-width: 80em)" srcset="3.jpg">
<source media="all and (min-width: 80.063em)" srcset="4.jpg">
<img src="2.jpg">
</picture>
可能な解決策をありがとう、私はとても感謝しています!
乾杯、ステファン