javascript - 即使放在 $(window).load 内,我也会得到 $(image).width() == 0

标签 javascript jquery image resize window

我想调整比窗口大的图像大小,但当我尝试获取图像大小时,宽度和高度始终为 0。我在某处读到,这可能是因为图像不一定在 (document).ready 加载,因此图像函数应该在 (window).load 下加载,但它没有用。当涉及到 jquery 和 javascript 时,我是一个真正的新手,所以我可能做错了什么。

这就是我的 javascript 文件的样子:

//<!--
$(document).ready(function(){
    ... 
});

$(window).load(function () {

    $(".lightbox img").each(function() {

        var width = $(this).width();
        var max_width = $(window).width()-30;
        var height = $(this).height();          
        var max_height = $(window).height()-30;

        if(width > max_width || height > max_height) {
            if(height > width) {
                height = max_height;
                width = Math.ceil(width / height * max_height);
            } else {
                width = max_width;
                height = Math.ceil(height / width * max_width);
            }
        }

        $(this).attr("width",width);
        $(this).attr("height",height);

    });
});

//-->

提前致谢。

最佳答案

看看this project当图像加载时提供回调。

您可能无法获得尺寸的另一个原因是不可见元素(父元素或自身元素)。

关于javascript - 即使放在 $(window).load 内,我也会得到 $(image).width() == 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8929176/

相关文章:

javascript - 413 请求实体太大 HighCharts

jquery - 简单的jquery照片幻灯片

javascript - Jquery Ajax - 不加载文本

javascript - 带动画过渡的整页图像

javascript - 如何使用 Javascript 捕获字段名称(而不是字段值)?

javascript - 从显示为 :none in JavaScript 的父 div 获取 ID

c# - System.Drawing.Bitmap GetBounds GraphicsUnit.Inch

ios - Base64Encoding 已弃用 : first deprecated in iOS 7. 0

javascript - 返回语句在 Ajax 和 Angular 中不起作用

jquery masonry 动画项目