2012-03-09 73 views
0

Here我有一些简单的jQuery,它根据它们的宽度设置一系列浮动元素的高度。在每个元素的内部,我都有一个图像,它使用max-widthmax-height被强制保留在浮动元素中。jQuery + Fluid Images Chrome Bug

这几乎完美地工作。 Chrome让我感到悲伤。在Chrome浏览器中查看该小提琴的同时,还原Chrome并降低Chrome的宽度。然后,最大化Chrome。这些图像不能按比例缩放。

我已经在Firefox,Internet Explorer和Chrome中测试过了。 Chrome是展现此行为的三家公司中唯一的一家。我怎样才能解决这个问题??

Click here to see the fiddle.

回答

0

该解决方案最终被使用jQuery“抖动”包含的元素,迫使浏览器重新评估所包含的图像的大小。

The jsFiddle

新的jQuery:

var element = 'li'; 
var ratio = 1.25; 

function makeProportional(element, ratio) { 
    $(element).parent().css('width', '99%'); 
    var unitWidth = $(element).width(); 
    $(element).css('height',unitWidth*ratio); 
    $(element).parent().css('width', '100%'); 
} 

makeProportional(element,ratio); 


$(window).resize(function() { 
    makeProportional(element,ratio); 
}); 

编辑:

对于任何人阅读此之后,这个错误已得到修复。原始代码(链接到问题中)现在可用。

1

删除您的jQuery实际上使得它的工作你想要的方式,并将其加载速度更快。只使用CSS我认为是最好的选择。我更新了fiddle

编辑:

var element = 'li'; 
var ratio = 1.25; 

function makeProportional(element, ratio) { 
    $(element).css('height',$(element).width()*ratio); 
    $('img').css('height',$(element).width()*ratio); 
} 

makeProportional(element,ratio); 


$(window).resize(function() { 
    makeProportional(element,ratio); 
}); 
​ 
+0

很好的回答!我很想抛弃jQuery,'在我正在处理图像的网站上,不一定会有相同的宽度和高度,这意味着我不能依赖图像本身来定义浮动元素的高度。因此,jQuery。 – 2012-03-09 18:29:03

+0

在这种情况下,我会将大小调整到实际图像上。我更新了上面的小提琴。 – thepriebe 2012-03-09 18:35:24

+0

现在试一试,我犯了一个语法错误。 D'哦! – thepriebe 2012-03-09 18:59:17