javascript - 每张图片都比前一张JS少

标签 javascript

我对简单脚本有疑问:

$(document).ready(function() {
    var lastHeight = 0;
    $("img").each(function(i) {
        if (i != 0) {
            $(this).css({
                height: lastHeight / 100 * 90
            })
        }
        lastHeight = parseInt($(this).css("height"));
    })
});

它应该显示每个图像都小于前一个图像的图像(以百分比表示)。 但我有问题。第一次(没有缓存),我得到一个正常大小的图像,其他图像非常小。如果我重新加载页面(使用缓存),它就可以正常工作。

通过php加载图片:

foreach($top_images as $top_i) {
    echo '#'.$ratio;
    echo '
        <br><img class="top" src="'.$top_i['url'].'" ><br>
    ';
    $ratio++;
}

最佳答案

这可能是因为您在图像完全加载之前运行脚本。

图像尺寸仅在图像加载完成后才可用。

尝试将代码包装在 jquery ready method 中.

$(document).ready(function() {
    var lastHeight = 0;
    $("img").each(function(i) {
        if (i != 0) {
            $(this).css({
                height: lastHeight / 100 * 90
            })
        }
        lastHeight = parseInt($(this).css('height'));
    })
});

关于javascript - 每张图片都比前一张JS少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28675158/

相关文章:

javascript - 带有政治色彩的密码的正则表达式

javascript - 使用 .prop() 进行检查和禁用的 jquery 1.6.2 问题

javascript - 为什么我不能为我所在的函数创建一个方法?

javascript - 如何使用 Nodejs + Angular JS 和 MySQL 创建动态 TreeView

javascript - React 应用程序无法在 safari 浏览器中运行?语法错误

javascript - 弹出窗口中的 jquery 自动完成

javascript - Javascript 的 mustache 渲染问题

javascript - jQuery .click() 导致页面滚动

javascript - 在 html 中使用 windows 用户名

javascript - 如何在 javascript Canvas 上使用鼠标接近度反转圆圈的方向?