从css、JavaScript中获取样式

从css、JavaScript中获取样式,javascript,html,css,Javascript,Html,Css,我使用实际风格制作JavaScript 3D动画。我创建了工作代码,但如果样式在扩展CSS文件中,我就不能运行代码,所以只有当样式是用HTML代码编写时,代码才会运行。有解决办法吗 工作代码: HTML JavaScript setInterval(function(){ move()}, 2000); function move(){ var elem = document.getElementsByClassName("example"); var str = elem

我使用实际风格制作JavaScript 3D动画。我创建了工作代码,但如果样式在扩展CSS文件中,我就不能运行代码,所以只有当样式是用HTML代码编写时,代码才会运行。有解决办法吗

工作代码:

HTML

JavaScript

setInterval(function(){ move()}, 2000);

function move(){    
   var elem = document.getElementsByClassName("example");
   var str = elem[0].style.transformOrigin;
   var res = str.split(" ");
   var pos = res[2].replace(/px/g, " ");
   var id = setInterval(frame, 20);

   function frame(){
     if (pos==500){
     clearInterval(id);
   }
   else {
    pos++;
    elem[0].style.transformOrigin = "50% 50%"+pos+"px";
   }
 }                                                                      
}
正如你们所看到的,一切都在运行,但当我从HTML代码中删除样式时。我可以在控制台中看到错误:无法读取您需要使用的未定义的属性“replace”。这将允许您查看CSS计算值。JS无法直接从DOM元素提取CSS样式,但需要处理已应用于它的样式

您还需要使用getPropertyValue(“transform-origin”)来访问所需的属性

为了获得变换原点的第三个值,您将赋值给str,如下所示:

    var str = getComputedStyle(elem[0]).getPropertyValue('transform-origin')
您需要使用。这将允许您查看CSS计算值。JS无法直接从DOM元素提取CSS样式,但需要处理已应用于它的样式

您还需要使用getPropertyValue(“transform-origin”)来访问所需的属性

为了获得变换原点的第三个值,您将赋值给str,如下所示:

    var str = getComputedStyle(elem[0]).getPropertyValue('transform-origin')

您是否尝试过在所有源代码文件中包含CSS文件作为标题?为什么不投票?我忘了放一些数据了吗?是的,我把JS包在了
文档中。onload
。很有可能,JS在加载CSS之前运行,因此CSS属性不存在。您是否尝试过在所有源代码文件中包含CSS文件作为头文件?为什么不投票?我忘了放一些数据了吗?是的,我把JS包在了
文档中。onload
。很可能,JS在加载CSS之前运行,因此CSS属性不存在。是的,这是正确的。CSS中定义的样式不会反映在
style
属性中。这是正确的,但无法从小提琴中分辨出来。小提琴只需要通过获得计算的样式进行调整,其余的没有显示更大的问题。因此,这更多的是说明为什么它以前不起作用@是的,这是正确的。CSS中定义的样式不会反映在
style
属性中。这是正确的,但无法从小提琴中分辨出来。小提琴只需要通过获得计算的样式进行调整,其余的没有显示更大的问题。因此,这更多的是说明为什么它以前不起作用@诡计
    var str = getComputedStyle(elem[0]).getPropertyValue('transform-origin')