コードを確認して、JS を介してのみ背景画像を変更し、スタイルシートから広く適用するスタイルを用意することをお勧めします。
JavaScript では、文字列を変数に割り当ててから、その String オブジェクトのプロパティを設定しています。言い換えれば、あなたがやっているとき、要素に影響を与えるのではなく、img.width
実際にやっているのです。"url('some/url')".width
JavaScript は非常に寛容な魂であるため、これによってエラーが発生することはありません。
width
max-width
要素のサイジング用です。あなたの場合、body
定義による要素は幅全体を占めます。
変更する必要があるのは、要素の背景画像のサイズです。
背景が画像全体を横方向および縦方向にカバーするようにするには、 を使用しますbackground-size: cover
。
できることは次のとおりです。
Le HTML :
<html>
<head>
<!-- jQuery is really not necessary, but handy -->
<script type='text/javascript' src='http://code.jquery.com/jquery-2.0.3.min.js'></script>
<!-- Put your JS in a file and load it -->
<script type='text/javascript' src='route_to_your_javascript_file.js'></script>
<!-- Put your CSS in a file and load it -->
<link type='text/css' href='route_to_your_stylesheet.css' />
</head>
<body>
<h1>Your Page</h1>
<!-- This is generally placed at the bottom -->
<!-- to ensure that the DOM is loaded when -->
<!-- it gets here. -->
<script type='text/javascript'>
$(document).ready(function() {
// This will be called similarly like the inline onload attribute
changeBackground({tag_core image_value});
});
</script>
</body>
</html>
JavaScript ファイル内:
function changeBodyBackground(url) {
$('body').css('background-image', url);
}
あなたのCSSファイルで:
body {
background: url(default-bg-should-you-need-it.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
/* Some IE Love */
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='myBackground.jpg', sizingMethod='scale')";
}
Chris Coyierは、それについて非常に優れた記事を書いています。
注: これはテストされていません。不明な点があれば、お知らせください。
それが役に立てば幸い!