【发布时间】:2011-04-18 04:51:40
【问题描述】:
我有以下 jquery 脚本来调整图像大小并给它一个左边距以使其水平居中。该脚本在 FF 中完美运行,但在 Safari 和 Chrome 中我有问题。
Safari 和 Chrome 问题:图像调整大小正常,但 leftMargin 似乎已设置之前图像调整大小导致图像向左推得太远。此问题仅发生在 document.ready 上。调整浏览器大小时,脚本运行良好。
function imageresize() {
var h = $(window).height(),
w = $(window).width(),
newHeight = h * 0.5,
newTopMargin = newHeight * 0.12;
$('img.resize').css({'height' : newHeight + 'px', 'margin-top' : '-' + newTopMargin + 'px'});
var leftMargin = (w - ($('img.resize').width()))/2;
$('img.resize').css('margin-left', leftMargin + 'px');
}
$(document).ready(function() {
imageresize();
});
$(window).resize(function() {
imageresize();
});
脚本放在</body>之前。
任何帮助将不胜感激!
【问题讨论】:
-
您可以随时尝试将其放入 SetTimeout(1) 中,看看是否有帮助:)
-
尽可能避免尝试这样的时间。 JS 是事件驱动的,所以它应该在正确的触发器上加载,而不是假设加载需要 1 秒。
标签: jquery cross-browser