最佳答案
我认为您必须使用 document.styleSheets
,找到您的样式表,然后遍历 cssRules(IE 规则)列表以将选择器与 "#viewbase"
匹配然后您可以像使用内联样式一样访问您的样式属性,因为其中的样式信息还有一个 CSSStyleDeclaration(因此您可以使用 element.style.left 等等)。
Sidenode:getComputedStyle
不适用于大多数版本的 IE。 IE 对每个元素都有 currentStyle
属性,但这不是一回事。也许两者结合也能奏效。
更新
设法获得初始位置,如果那是你需要的,如果我没记错的话,你可以重新分配这些值。
function trigger(e) {
item = this;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
x1 = e.pageX;
y1 = e.pageY;
}
else if (e.clientX || e.clientY) {
x1 = e.clientX;
y1 = e.clientY;
}
document.getElementById("ex").innerHTML = x1;
document.getElementById("wye").innerHTML= y1;
// the stylesheet you defined, in a standalone context, it might
// have another index, (i.e. 0 if it's the only one)
list = document.styleSheets[2].cssRules;
for(var i=0;i<list.length;i++)
//match #viewbase
if(list[i].selectorText.toLowerCase() == "#"+item.id)
{ item = list[i];
break;
}
document.getElementById("xval").innerHTML = item.style.left;
document.getElementById("yval").innerHTML = item.style.top;
document.getElementById("parseX").innerHTML = parseInt(item.style.left, 10);
document.getElementById("parseY").innerHTML = parseInt(item.style.top, 10);
document.getElementById("debug").innerHTML = 'clicked!';
document.onmouseup = release;
}
另一个版本是使用下面的
var styleDef = window.getComputedStyle(item) || item.currentStyle;
document.getElementById("xval").innerHTML = styleDef.left;
document.getElementById("yval").innerHTML = styleDef.top;
关于javascript - 无法使用 javascript 获取 HTML CSS 元素的初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7055720/