如何在Safari中使用jQuery查找多个背景的背景位置/背景图像等

时间:2011-07-19 07:24:54

标签: jquery css css3 safari

也许我在这里错过了什么。

我正在尝试获取具有多个背景的元素(div)的当前背景信息,使用纵向background-repeatbackground-positionbackground-image进行设置。< / p>

使用jQuery,我只需要var bPos = $('#element').css('background-position')来获取当前位置的集合,这将在Firefox和Chromium(目前分别是版本5和12)中提供类似'0 0, 100px 100px, left bottom'的内容,但在Safari中( OS-X上的第5版)它只返回第一个值对('0 0')。这些CSS值在外部样式表中设置。

有没有人知道为什么会这样,以及如何在Safari中获取完整的值对(使用简写background属性也不会这样做?)

修改

以下是外部样式表中使用的CSS:

#page{
    background-repeat: repeat-x, repeat-x, repeat-x, repeat-x, repeat-x;
    background-image: url('../images/line.png'), url('../images/line.png'), url('../images/line.png'), url('../images/line.png'), url('../images/line.png');
    background-position: 0 798px, 0 653px, 0 125px, 0 88px, 0 78px;
}

修改

好的,我在jsFiddle上为此做了一个测试用例,并将其报告为jQuery bug,因为它似乎是可重现的行为(尽管我接受它可能是一个浏览器实现问题而不是实际上是一个jQuery bug。)

但是,如果有人有任何想法......

修改

jQuery票据已经关闭 - 我认为这是一个Safari错误 - 我不太清楚如何从这里走得更远,但我已经发布了一个关于Apple的错误报告。

修改

正如Sindre Sorhus所指出的,这似乎已在Safari 5.1中得到纠正。

3 个答案:

答案 0 :(得分:1)

由于它已经在5.1中修复,我想它不再是一个大问题了,但是如果作为一种解决方法你可以初步设置js中的背景

$('#page').attr('style', '...');

然后从那里读取... 屁股有点愚蠢和痛苦,是的。

答案 1 :(得分:1)

答案 2 :(得分:-1)

您可以尝试使用不同的类。那会更容易。