如何使用原型获得背景图像的x或y位置?

时间:2010-04-11 22:29:40

标签: javascript css prototypejs background-image background-position

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

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

我想这是因为位置有不同的形式,比如'中心',而不仅仅是通用。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

嘿,这看起来效果很好。即使将位置设置为“中心”,原型也会将其转换为百分比!非常方便!

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

无论如何,感谢帮助人员。