使用 javascript 在浏览器调整大小时更改背景 css
Use javascript to change background css on browser resize
因此,我希望在浏览器高度等于浏览器宽度的 2/3 时更改背景大小。这是我试过的代码,但我无法让它工作。
<body id="body" onresize="BG_resize()">
<script>
function BG_resize() {
var w = window.innerWidth;
var h = window.innerHeight;
if ((w * (2 / 3)) < h){
document.getElementById("body").style.background-size = "auto 100%";
}
}
</script>
</body>
css:
#body {
background:url("Layout/BG.jpg");
background-size:100% auto;
}
您的 JS 应该使用 backgroundSize,而不是 background-size:
document.getElementById("body").style.backgroundSize = "auto 100%";
另一个我觉得更简单的替代方法是使用 jQuery。您可以简单地使用 resize() 事件处理程序。下面是一个例子:
$(window).on('resize', function () {
//在这里你可以添加你想要在调整大小时执行的代码
})
然后更改 css 您还可以使用 jQuery .css().
http://fofwebdesign.co.uk/template/_...tio-resize.htm
.target-ratio-resize {
max-width: 960px; /* actual img width */
max-height: 150px; /* actual img height */
*height: 150px; /* actual img height - IE7 */
background-image: url(students.jpg);
background-size: cover;
background-position: center;
}
.target-ratio-resize:after {
content: " ";
display: block;
width: 100%;
padding-top: 66.666%; /* 2:3 ratio */
}
所有这些的另一种替代方法是使用媒体查询(因为您在 window 上执行此操作)并一起摆脱 javascript。这将 运行 更流畅,因为浏览器会为您完成大部分工作。
看起来您要查找的查询是纵横比,例如:
@media screen and (min-aspect-ratio: 2/3)
{
body {
background-size: auto 100%;
}
}
@media screen and (max-aspect-ratio: 2/3)
{
body {
background-size: 100% auto;
}
}
因此,我希望在浏览器高度等于浏览器宽度的 2/3 时更改背景大小。这是我试过的代码,但我无法让它工作。
<body id="body" onresize="BG_resize()">
<script>
function BG_resize() {
var w = window.innerWidth;
var h = window.innerHeight;
if ((w * (2 / 3)) < h){
document.getElementById("body").style.background-size = "auto 100%";
}
}
</script>
</body>
css:
#body {
background:url("Layout/BG.jpg");
background-size:100% auto;
}
您的 JS 应该使用 backgroundSize,而不是 background-size:
document.getElementById("body").style.backgroundSize = "auto 100%";
另一个我觉得更简单的替代方法是使用 jQuery。您可以简单地使用 resize() 事件处理程序。下面是一个例子:
$(window).on('resize', function () {
//在这里你可以添加你想要在调整大小时执行的代码 })
然后更改 css 您还可以使用 jQuery .css().
http://fofwebdesign.co.uk/template/_...tio-resize.htm
.target-ratio-resize {
max-width: 960px; /* actual img width */
max-height: 150px; /* actual img height */
*height: 150px; /* actual img height - IE7 */
background-image: url(students.jpg);
background-size: cover;
background-position: center;
}
.target-ratio-resize:after {
content: " ";
display: block;
width: 100%;
padding-top: 66.666%; /* 2:3 ratio */
}
所有这些的另一种替代方法是使用媒体查询(因为您在 window 上执行此操作)并一起摆脱 javascript。这将 运行 更流畅,因为浏览器会为您完成大部分工作。
看起来您要查找的查询是纵横比,例如:
@media screen and (min-aspect-ratio: 2/3)
{
body {
background-size: auto 100%;
}
}
@media screen and (max-aspect-ratio: 2/3)
{
body {
background-size: 100% auto;
}
}