jquery - 加载后如何避免额外的重新排列页面?

标签 jquery image

<body>
<img id='imgT' src='<?php echo $folder;?>/01.jpg' alt="img">

<script>
    $("#imgT").css("height" , 90 + "vh");  // I need to avoid scrolling to see the entire image.
    var a = $("#imgT").width() + 3;
    alert (a); // result is 3 instead of real width
    $("#container").css("width", a);
</script>

...
</body>

在 css 文件中,除了 display:block; 之外,没有任何关于 imgT 的内容。

因此,在这种情况下,js 将 0 显示为 imgT 宽度,即看不到它。

当我将 js 代码放入单独的 .js 文件中时,一切正常,除了在页面加载结束时重新调整丑陋的图像大小之外。

我想在加载页面后避免这种额外的重新排列页面,即在加载图像后立即重新调整大小,但 javascript 无法正确看到其宽度。

有什么帮助吗?

最佳答案

您的代码在创建图像元素后运行,但是内部图像的加载是异步的。您需要等到 <img> 内的图像完全加载后,JavaScript 才会报告正确的测量结果:

<script>
    $(window).load(function() {
        $("#imgT").css("height", 90 + "vh"); // I need to avoid scrolling to see the entire image.
        var a = $("#imgT").width() + 3;
        alert(a); // result is 3 instead of real width
        $("#container").css("width", a);
    });
</script>

$(window).load(function() {仅在所有异步元素(如 <iframe>)之后执行子句和<img>正在满载中

关于jquery - 加载后如何避免额外的重新排列页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24760154/

相关文章:

java - ColorModels 和 WritableRasters 在 java BufferedImages 中如何工作?

image - docker-有关命名图像的限制

javascript - 如何从 javascript 调用 flash actionscript 回调方法?

jquery - 隐藏/显示切换具有相同类名的单独 div

javascript - 阅读更多按钮将用户带到页面顶部

image - "Not allowed to load local resource"来自 PhoneGap 构建中远程页面的本地镜像

image - React Native-我们可以将图像和文本共享到whatsapp中吗?

javascript - jQuery 窗口滚动事件不起作用

javascript - 为什么jslint会高亮++?

android - 将图像数组从 android 发送到 rest web 服务(使用 java),反之亦然