Window.getComputedStyle的参数1不实现接口Element

Cra*_*zit 5 javascript jquery

我有此错误,但我真的不知道为什么:

Window.getComputedStyle的参数1不实现接口Element

HTML:

<div class="reveal"></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript / jQuery:

var reveal = $('.reveal');
reveal.css('margin', '10px');
var resulte = window.getComputedStyle(reveal, 'margin');
Run Code Online (Sandbox Code Playgroud)

Rac*_*lan 6

getComputedStyle()是一个 JavaScript 函数,它需要一个 JavaScript 对象,而不是一个 jQuery 对象。通过它reveal[0],它将起作用。

getComputedStyle()函数的第二个参数是可选的,它用于伪元素,而不是 CSS 属性。您可以使用getComputedStyle()获取所有属性,然后使用getPropertyValue('margin')获取所需的特定属性。

问题是当您margin像这样在 jQuery 中为属性分配一个值时reveal.css('margin', '10px'),它会应用于每个边距(顶部、右侧、底部和左侧)并且该margin属性将不返回任何内容(在某些浏览器中)。您必须分别获得每个保证金。

var reveal = $('.reveal');
reveal.css('margin', '10px');
var resulte = window.getComputedStyle(reveal[0], null).getPropertyValue('margin-top');

console.log(resulte);
Run Code Online (Sandbox Code Playgroud)
.reveal {
  background-color: #f00;
  height: 50px;
  width: 50px;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="reveal"></div>
Run Code Online (Sandbox Code Playgroud)