2013-04-14 92 views
1

我需要能够对应该有多高一个HTML元素(DIV)是算...使用javaScript变量添加css属性?

我用这段JavaScript代码来计算和CSS添加到我的“包装”分区:

var h=window.innerHeight; 
var content=920; 
var fix=920-h; 
document.getElementById("wrapper").style.height= +fix+ 'px'; 

但它根本不工作...

任何帮助吗?

+0

document.getElementById(“wrapper”)。style.height = fix +'px'; –

+1

我[无法复制](http://jsbin.com/ubigah/2/edit)这个问题。 – Quentin

+3

lolcat111的点差异挑战表明删除的'+'符号将在转换为字符串之前停止将'fix'转换为数字,以便它可以附加''px''。既然它已经是一个数字,这将没有实际意义,但会使代码稍微更整齐,并为您节省一个字节。 – Quentin

回答

1

您可能在加载主体之前运行此脚本。

加载它身上加载完成这一更换您的代码之后:

window.onload = function(){ 
    var h=window.innerHeight; 
    var content=920; 
    var fix=920-h; 
    document.getElementById("wrapper").style.height= +fix+ 'px'; 
} 
-2
<script type="text/javascript"> 
    h=window.innerHeight; 
    content=920; 
    fix=(content-h); 
    document.getElementById("wrapper").style.height=(fix + 'px'); 
</script> 

我认为这是你在找什么,只要DIV ID包装存在。

我认为更有效的办法是..

(使用jQuery)

<script type="text/javascript"> 
    $(document).ready(function(){ 
    h=$(window).height; 
    content=$('.content').height; //gets height of class content 
    fix=(content-h); 
    $('wrapper').height=fix; 
    }); 
</script> 

我的2美分。

+0

你的第一个解决方案没有什么区别,你的jQuery解决方案被打破了...更不用说虚假宣称它会以某种方式更高效。 – 2013-04-14 18:04:02

+0

作为加载时间可能效率不高,但编程时间。 jQuery足够轻量,对页面加载没有严重影响。除了在

  • 11. 使用JavaScript添加img属性
  • 12. 将“属性”或类添加到变量
  • 13. 将变量添加到jQuery src属性
  • 14. JS:添加变量作为属性与(+)
  • 15. 添加的CSS属性
  • 16. 添加Javascript变量
  • 17. 添加JavaScript变量
  • 18. 添加属性对全局变量在Javascript
  • 19. jQuery变量的Javascript属性
  • 20. JavaScript-属性和变量
  • 21. 如何使用ReactJS将变量值添加到属性?
  • 22. 使用基于视口尺寸的javascript变量来改变CSS属性
  • 23. 使用.css()与变量定义css属性值的问题
  • 24. 添加JavaScript属性锚
  • 25. JavaScript:如何添加属性?
  • 26. 用相同属性的JavaScript添加多行CSS
  • 27. Hubspot批量添加属性
  • 28. 添加属性使用jQuery
  • 29. 使用xmllint添加属性
  • 30. 使用XmlWriter添加属性