gpt4 book ai didi

javascript - 使用 Javascript 调整窗口大小时调整图像大小 - 在 Chrome 中不起作用

转载 作者:行者123 更新时间:2023-11-28 07:48:09 24 4
gpt4 key购买 nike

我使用以下 JavaScript 在窗口大小调整时调整图像大小,这在除 Chrome 之外的所有浏览器中都能正常工作:

<!DOCTYPE html>
<html>
<head>
<style>
* {
padding: 0;
margin: 0;
}
.fit {
max-width: 100%;
max-height: 100%;
}
.center {
display: block;
margin: auto;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" language="JavaScript">
function set_body_height()
{
var wh = $(window).height();
$('body').attr('style', 'height:' + wh + 'px;');
}
$(document).ready(function() {
set_body_height();
$(window).bind('resize', function() { set_body_height(); });
});
</script>
</head>
<body>
<img id="the_pic" class="center fit" src="pic.jpg" >
</body>
</html>

Chrome 的问题在于,当页面首次加载时,图像不会调整大小以适应窗口大小,但当您在加载后调整浏览器窗口大小时,图像会正确调整大小以适应调整后的浏览器窗口大小。

尝试点击http://www.mnhscs.com/christmas

奇怪的是,每次在 Chrome 中加载页面时,这个问题都不会发生。有时图像会正确调整大小。

最佳答案

因为您正在使用 $(document).ready,所以您的图像加载存在竞争条件。有时图像会在调用大小调整函数之前完成加载,因为 .ready() 只等待 dom 完成,而不等待图像加载。您需要使用 document.load() ,它将等待图像加载。您仅在 Chrome 中看到此内容的原因是它速度极快:)

Official way to ask jQuery wait for all images to load before executing something

确保在 Chrome 中测试时关闭缓存。如果缓存的图像掩盖了问题,我不会感到惊讶,因为图像的加载速度与 DOM 的加载速度一样快。

Disabling Chrome cache for website development

关于javascript - 使用 Javascript 调整窗口大小时调整图像大小 - 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27190252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com