2013-04-10 26 views
0

我願做這樣的事情,但它不工作CSS使用Javascript

window.onresize = center; 

function center() 
{ 
     var x=window.innerWidth; 
     x = x/2; 
     document.getElementById("center_div").style.marginLeft = x; 
} 

我該怎麼辦呢?

+1

請定義「不起作用」的含義。 – 2013-04-10 01:11:53

+0

你想用你的代碼做什麼?你能解釋一下嗎? – eggy 2013-04-10 01:14:24

+0

據我所知,這是一個無效的函數調用,你需要包含括號,即center();.您可能還必須爲窗口大小調整創建一個事件偵聽器。 – lukeocom 2013-04-10 01:16:39

回答

1

您必須添加px,Element.style.marginLeft不接受數字。它應該是有效的CSS屬性(margin-left)值;它可以是10px5%auto;

document.getElementById("center_div").style.marginLeft = x + 'px'; 
0

我認爲你要找的是css屬性margin: auto。隨機的例子(不是我的):http://bluerobot.com/web/css/center1.html。另外,你會想要width: 50%。那是你在找什麼?讓我知道,如果需要的話,我會改變我的答案。 :)

+0

他想使用javascript – 2013-04-10 01:41:27

1

您的代碼很好,但缺少一件事。你必須在X變量之後加上「px」。換句話說,它應該是: document.getElementById("center_div").style.marginLeft = x+"px"; 否則,瀏覽器將不知道它的單位。

我在jsfiddle中做了一個示例,這將是一個工作示例。嘗試一下。 http://jsfiddle.net/TLPak/

PS。我更新了代碼以包含window.onresize。 (還有一些改進,考慮了DIV的寬度。)http://jsfiddle.net/TLPak/1/通過點擊事件觸發它或在窗口調整大小事件都是好的。希望它對你有一些幫助。

function center() { 
    var x=window.innerWidth;  
    x = x/2; 

    var y = document.getElementById("center_div").offsetWidth; 
    y = y/2; 

    document.getElementById("center_div").style.marginLeft = x - y + "px"; 
} 

window.onresize = center; 
+0

這不會使對象居中,它會將對象的左上角放到中心。你需要更新左邊的餘量 – 2013-04-10 01:43:19

+0

行,我修改了代碼。它現在將在窗口大小調整事件上工作。 – AYoiS 2013-04-10 02:11:12