尝试在chome控制台中返回背景位置值时出现空白条目

时间:2017-05-04 22:00:32

标签: javascript

我有一个div,背景图像位于X 0px和Y 0px位置。现在我想在console.log中返回这些值,但控制台显示一个空白条目。我试着提醒并且是一样的。

为什么会这样?

var myDiv = document.getElementsByClassName('myDiv')[0];

console.log(myDiv.style.backgroundPositionY);
.myDiv{
  width:200px; height:200px;
  background:blue;
  background-image:url(http://www.shunvmall.com/data/out/141/46916550-landscape-pictures.jpeg);
  background-repeat:no-repeat;
	background-position:0px 0px;
	background-size:cover;
}
<div class="myDiv"></div>

3 个答案:

答案 0 :(得分:2)

元素上的style对象仅反映应用于元素的直接样式。类所应用的样式不会显示在那里。要获得这些,请使用getComputedStyle(标准)或currentStyle(特定于IE):

标准

console.log(getComputedStyle(myDiv).backgroundPositionY);

IE特异性:

console.log(myDiv.currentStyle.backgroundPositionY);

标准示例:

&#13;
&#13;
var myDiv = document.getElementsByClassName('myDiv')[0];

console.log(getComputedStyle(myDiv).backgroundPositionY);
&#13;
.myDiv{
  width:200px; height:200px;
  background:blue;
  background-image:url(http://www.shunvmall.com/data/out/141/46916550-landscape-pictures.jpeg);
  background-repeat:no-repeat;
	background-position:0px 0px;
	background-size:cover;
}
&#13;
<div class="myDiv"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

要达到预期效果,请使用以下

var divElem = document.querySelector('.myDiv');
style = getComputedStyle(divElem)
console.log(style.backgroundPositionY);

Codepen - https://codepen.io/nagasai/pen/MmEjjr?editors=1111

答案 2 :(得分:0)

以下JavaScript工作原理:

var myDiv = document.getElementsByClassName('myDiv')[0],
    _tmp =     window.getComputedStyle(myDiv,null).backgroundPosition.trim().split(/\s+/),
    positions = {
        'left' : _tmp[0],
        'top' : _tmp[1]
    };
console.log(positions, positions.left, positions.top);

reference