更新字体大小后,不计算新的offsetHeight

时间:2014-11-27 21:42:53

标签: javascript css user-interface dynamic

我有一个问题,'offsetHeight'属性在更新字体大小后没有得到更新。贝娄是代码。

function shrink_toolbar_text()
{
  var toolbar = document.getElementById("toolbar");
  var icons = document.getElementsByClassName("icon-alone");

  var icon_size = 64;
  var icon_height = icons[0].offsetHeight ;

  while( icon_height > toolbar.offsetHeight)
  {


   // textSpan.style.fontSize = parseInt(textSpan.style.fontSize) - 1;
    icon_size = icon_size -1;
    for ( i=0; i< icons.length ;i++){
      icons[i].style.fontSize = icon_size ; 
    }  

     icon_height = icons[0].offsetHeight ;
    console.log( icon_height);
    console.log( icon_size);
    // console.log( parseInt(icon_size));
  }
  console.log("shrink_toolbar_text() ");
}

有关这种情况的任何解决方法吗? 到目前为止,我已经尝试过跟踪的事情。 1.尝试使用show和hide重绘每个图标。 2.尝试'getComputedStyle()'但它根本不返回一个名为'offsetHeight'的值。

知道代码无效的原因吗?

1 个答案:

答案 0 :(得分:0)

代码应该更正。

var icon_size = 64px;

icons[i].style.fontSize = icon_size+"px" ;

在某些浏览器中,此代码无法使用后缀&#39; px&#39;无法正常工作。它既不会在控制台上发出错误消息。所以仔细编码就可以了。