我正在开发一些 jQuery 来调整页面上图像的大小。该 block 工作正常:
var size = 350;
$("img").each(function () {
if ($(this).height() > $(this).width()) {
var h = size;
var w = Math.ceil(($(this).width() / $(this).height()) * size);
}
else {
var w = size;
var h = Math.ceil(($(this).height() / $(this).width()) * size);
}
$(this).css({ "height": h, "width": w });
});
问题是小图像被放大了。没问题,再用一个 if 语句就可以解决这个问题!
var size = 350;
$("img").each(function () {
if ($(this).height() > size || $(this).width() > size) { //Always false
if ($(this).height() > $(this).width()) {
var h = size;
var w = Math.ceil(($(this).width() / $(this).height()) * size);
}
else {
var w = size;
var h = Math.ceil(($(this).height() / $(this).width()) * size);
}
$(this).css({ "height": h, "width": w });
}
});
我哪里出错了?
最佳答案
问题是我的脚本在加载页面上的图像之前触发,即使脚本标签位于页面底部。那里学到了教训!我将 .each 更改为 .load,这对于我的目的来说很好。
更好的解决方案可能是将其包装在 $("window").load()
事件或 $(document).ready()
中。
关于javascript - 为什么这总是评估为假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096200/