检查您的代码,我建议您仅通过 JS 更改背景图像,并拥有使其广泛应用于样式表的样式。
在您的 JavaScript 中,您将一个字符串分配给一个变量,然后设置该字符串对象的属性。换句话说,当你在做的时候img.width
,你实际上是在做"url('some/url')".width
而不是影响任何元素。这不会引发任何错误,因为 JavaScript 是一个非常宽容的灵魂。
width
并且max-width
用于元素大小。在您的情况下,body
根据定义,元素占据了整个宽度。
您需要更改的是元素背景图像的大小。
要让背景水平和垂直覆盖整个图像,请使用background-size: cover
.
这是你可以做的:
乐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有一篇关于它的非常好的文章。
注意:这未经测试。如果有什么不清楚的,请告诉我。
希望能帮助到你!