2013-04-14 130 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添加屬性