也许我在这里遗漏了什么。
我正在尝试获取具有多个背景的元素 (div
) 的当前背景信息,使用普通格式 background-repeat
、background-位置
和背景图片
。
使用 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('../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 错误)。
不过,如果有人有任何想法......
编辑:
jQuery 票已关闭 - 我认为这意味着它是 Safari 错误 - 我不太确定如何从这里走得更远,但我已经向 Apple 发布了错误报告。
编辑:
正如 Sindre Sorhus 所指出的,这似乎已在 Safari 5.1 中得到纠正。
最佳答案
因为它在 5.1 中得到了修复,我想这不再是什么大问题了,但我想知道是否可以作为一种解决方法,您可以通过
最初从 js 设置背景$('#page').attr('style', '...');
然后从那里读... 有点愚蠢和痛苦,是的。
关于jquery - 如何在 Safari 中使用 jQuery 查找多个背景的背景位置/背景图像等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6743600/