我有以下jQuery脚本来调整图像的大小,并给它一个左边距以水平居中。该脚本在FF中完美工作,但在Safari和Chrome中,我遇到了问题。脚本不工作在Safari和Chrome的document.ready(FF好吧),但在document.resize
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)中,看看是否有帮助:) – Brad 2011-04-18 04:56:00
只要有可能,就避免尝试这样的事情。 JS是事件驱动的,所以它应该加载在正确的触发器上,而不是假定需要1秒加载。 – wesbos 2011-04-18 05:02:40
*(无论如何; - )* – circey 2011-04-18 05:07:32