也许我在这里错过了什么。
我正在尝试获取具有多个背景的元素(div
)的当前背景信息,使用纵向background-repeat
,background-position
和background-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中得到纠正。
答案 0 :(得分:1)
由于它已经在5.1中修复,我想它不再是一个大问题了,但是如果作为一种解决方法你可以初步设置js中的背景
$('#page').attr('style', '...');
然后从那里读取... 屁股有点愚蠢和痛苦,是的。
答案 1 :(得分:1)
使用Jquery Background Position插件。 http://www.webinventif.fr/jquery-background-position-mettez-du-mouvement-dans-votre-background/
答案 2 :(得分:-1)
您可以尝试使用不同的类。那会更容易。