javascript - 无法使用 javascript 获取 HTML CSS 元素的初始值

标签 javascript html css

我正在尝试操作一个 div 元素。虽然我已经定义了某些属性值,但我似乎无法获得初始值。

这里是问题所在:Fiddle

我已经筋疲力尽了……谢谢。

最佳答案

我认为您必须使用 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/

相关文章:

javascript - 将 jquery-ui 自动完成与动态表单生成结合使用

javascript - 使用 javascript 在按钮单击时打印多个 HTML(动态)

javascript - 文本节点可以开槽吗?

Javascript 拖放问题

javascript - 如何创建适合移动设备的响应式菜单?

javascript - 基于文本输入扩展圆圈

javascript - 在谷歌地图中平铺连续的多边形

javascript - Vue.js - 更改除单击元素之外的所有元素的颜色

html - 在<ol>内的<a>标签上设置 "display: list-item"是否有效?

javascript - Twitter Bootstrap - 多个图像(缩略图)轮播 - 一次移动一个缩略图