如何在Safari中使用jQuery查找多背景的background-position / background-image等
也许我在这里错过了一些东西。
我试图获取具有多个背景的元素( div
)的当前背景信息,使用longhand background-repeat
, background-position
和background-image
。
使用jQuery,我只是做var bPos = $('#element').css('background-position')
来获取当前位置的集合,这会给我像'0 0, 100px 100px, left bottom'
Firefox和Chromium(目前版本分别为5和12),但是在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('..http://img.dovov.comline.png'), url('..http://img.dovov.comline.png'), url('..http://img.dovov.comline.png'), url('..http://img.dovov.comline.png'), url('..http://img.dovov.comline.png'); background-position: 0 798px, 0 653px, 0 125px, 0 88px, 0 78px; }
编辑:
好的,我在jsFiddle上为此做了一个testing用例,并将其报告为jQuery 错误,因为它似乎是可重复的行为(虽然我接受它可能是浏览器实现问题,而不是实际上的jQuery错误)。
不过,如果有人有任何想法…
编辑:
jQuery票据已经closures – 我认为这是一个Safari的bug – 我不太清楚如何离开这里,但我已经发布了一个与苹果公司的错误报告。
编辑:
正如Sindre Sorhus指出的那样,这在Safari 5.1中似乎已经得到纠正。
由于它固定在5.1,我想这不是一个大问题,但我徘徊,如果作为一个解决方法,你可以最初设置从js的背景
$('#page').attr('style', '...');
然后从那里读它…有点愚蠢和痛苦的屁股,是的。
使用JQuery背景位置插件。 http://www.webinventif.fr/jquery-background-position-mettez-du-mouvement-dans-votre-background/
你可以尝试使用不同的类。 那将是轻松的。