jQueryの使用に問題があります.css('background-size','contain');
Google Chromeでは、機能する場合と機能しない場合があります。(90%の場合は機能しません)
これが私が使用しているコードです:
function scaleImg(){
var img = $('#img_src_div img');
if(img.height() >= 600 || img.width() >= 570){
$('#img_src_div').css('background-size','contain');
}
}
これがJSFiddleの例で、動作しています。しかし、私のページの中ではそうではありません。そしてそれはほとんど同じです、URLやいくつかのテキストのようないくつかのphp生成コンテンツがあります。そしてそれが親div内にあるコード。
干渉する可能性のあるすべてのJavaScriptを削除しようとしましたが、同じです。Firefoxではそれはすべて大丈夫です。
編集:
images.php-これは別のphpページに含まれています。
//Removed - Was not usefull.
2番目の編集scaleImg();
:ページが読み込まれた後に手動で呼び出すことにより、背景が拡大縮小されます。したがって、ページの読み込みに問題があります。
これは私が今使っている正確なコードです。
<script type="text/javascript">
function scaleImg() {
var container = document.getElementById(\'img_src_div\');
var img = container.children[0]; // assuming image is first child
// var img = container.getElementsByTagName(\'img\')[0]; // use this one if not
if( img.width >= 570 || img.height >= 600) container.style.backgroundSize = "contain";
}
$(document).ready(function(){
scaleImg();
});
</script>
3番目で最後の(うまくいけば)編集:
私は解決しました、問題は$(document).ready(...);
画像が完全にダウンロードされる前に実行されることでした。したがってscaleImg();
、ドキュメントレディ関数を呼び出す代わりにonload=""
、画像タグ内で呼び出します。
<img alt="" onload="scaleImg(this.width,this.height);" id="img_src" src="image_url" />