0

嘿,我正在使用 Prototype 制作一个简单的用户友好的 CSS 编辑器。无论如何,我想知道我是否可以自己获得背景位置 x/y 值?

我希望我能做这样的事情,但遗憾的是它不起作用: element.getStyle('background-position-x);

我想这是因为位置以不同的形式出现,例如“中心”,而不仅仅是通用的。

4

2 回答 2

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style type="text/css">
<!--
body {
    background-image: url(00.jpg);
    background-repeat: no-repeat;
    background-position: top left;
}
-->
</style>
<script type="text/javascript">
function getStyle(obj,att){
for(var i=0;i<att.length;i++){
if(window.getComputedStyle){
obj[att[i]]=window.getComputedStyle(obj,null)[att[i]];
}
else if(obj.currentStyle){
obj[att[i]]=obj.currentStyle[att[i]];
}
}
}

onload=function(){
var obj = document.getElementsByTagName('body')[0];
var att=['backgroundImage','backgroundRepeat','backgroundPosition']
getStyle(obj,att)
for(var i=0;i<att.length;i++) {alert(obj[att[i]])}
}
</script>
</head>
<body>

</body>
</html>
于 2010-04-11T23:09:05.770 回答
1

嘿,这似乎工作得很好。即使位置设置为“中心中心”,原型也会将其转换为百分比!非常便利!

var temp = $('header').getStyle('background-position');
var split = temp.split(" ");
$('header_horizontal_position').value = split[0];
$('header_vertical_position').value = split[1];

无论如何,感谢您的帮助。

于 2010-04-11T23:28:30.517 回答