小编Ann*_*nan的帖子

使用 JavaScript 对象更改 element.style

首先,这个问题有很多重复,但这些答案并没有提供更深入的见解。

一季度。为什么这会导致 200,0 ?

考虑这个片段:

var el = document.querySelector('#r');

console.log('First:: ' + el.offsetHeight);

el.style = {
  height: el.offsetHeight + 500 + 'px'
}

console.log('Second:: ' + el.offsetHeight);
Run Code Online (Sandbox Code Playgroud)
<div id="r" style="height:200px;width:800px;overflow:auto;border:1px    solid;margin:20px;box-sizing:border-box"></div>
Run Code Online (Sandbox Code Playgroud)

我怀疑el.style是只读的,所以我希望设置一个对象应该默默地失败,因此我希望输出是

First:: 200,Second:: 200

但它是:

First:: 200,Second:: 0

为什么 ?

Q2。为什么使用 Object.assign 设置 el.style 有效?

Object.assign(el.style,{
   height : el.offsetHeight + 500 
})
Run Code Online (Sandbox Code Playgroud)

有人可以用更深入的见解解释我吗?

html javascript css dom

3
推荐指数
1
解决办法
4701
查看次数

标签 统计

css ×1

dom ×1

html ×1

javascript ×1