我有一个jquery/javascript代码块,它根据浏览器宽度设置图像的左边距。在IE浏览器中使用.css()操作jquery问题(bug?)
我做了一些总和来计算所需的左边距,它进入var $ diff。
此代码工作正常:
$('#background-wrapper>img').attr('alt',$diff);
这表明的款项都做工精细的图像与DIFF插入其alt属性为$正确的值结束。这适用于IE,FF,Chrome。
但是,如果我的代码更改为:
$('#background-wrapper>img').css('margin-left',$diff);
那么Firefox和Chrome做工精细,使用$ DIFF为左缘,因为我想要的图像值,但IE引发运行时错误和停止运行脚本,引用jquery文件中的无效参数。我使用的是jquery 1.3.2.min。
任何想法?
继承人为全功能的代码。
function imageResizeCenter() {
var $windowh = jQuery(window).height();
var $windoww = jQuery(window).width();
var imagesrc = $('#background-wrapper2>img').attr('src');
var myimage = new Image();
myimage.src = imagesrc;
var $width = myimage.width;
var $height = myimage.height;
var $ratio = parseInt($width,10)/parseInt($height,10);
var $newwidth = parseInt($windowh,10)*$ratio;
var $diff = (parseInt($windoww,10)-parseInt($newwidth,10))/2;
if($diff<0) $diff=0;
$('#background-wrapper2>img').attr('height',$windowh).css('margin-left',$diff);
}
2010-01-25
petesiss
+0
有什么特别之处图像或背景的包装?我在IE6,IE7,IE8和FF3中尝试了这个确切的脚本,并且我没有得到任何错误。 –
2010-01-26 03:33:58
+0
我不认为这有什么奇怪的......背景div只是一个100%宽度和高度div,绝对定位坐在网站的其余部分后面。 该图像是多个图像中的一个,除了一组图像外,其余都显示为:无。 最终结果是在网站的背景中全屏(或大中心)图像的幻灯片放映。 我在背景div中使用图像,而不是实际的背景图像CSS,以便在使用幻灯片显示过渡到图像前,可以使图像预加载。 –
2010-01-27 11:06:04