2013-07-17 79 views
1

這是一個簡單的javascript命令,用於在頁面加載時更改類名。我做錯了什麼,它不工作? http://jsfiddle.net/wtH2Y/4/使用javascript更改css onload

<html> 
<head> 
<style> 
    .away { 
     margin: 30px 0 0 0 !important; 
     position:fixed; 
     -webkit-transition: margin 0.6s; 
     -moz-transition: margin 0.6s; 
     -o-transition: margin 0.6s; 
    } 
    .in { 
     margin:0; 
     position:absolute; 
    } 

</style> 
<script> 
    window.onload = function pre-loader() { 
     document.getElementByClassName('away').className = 'in'; 
    }; 
</script> 
</head> 

<div class="away"> 
this should slide up when the page loads 
</div> 

回答

2

有幾件事情:

  • 函數名稱不能在他們破折號。重命名你的功能。
  • 如果您使用的是命名函數,我不會以這種方式將其分配給屬性。要麼使其匿名或指定它像這樣:

    function foo() { 
        ... 
    } 
    
    window.onload = foo; 
    

    否則,您將無法撥打foo()

  • getElementByClassName應該是getElementsByClassName(請注意s)。另外,由於它會返回一組元素,因此您需要用for循環來遍歷它。
+0

相關提示我想我會堅持getElementById。並感謝趕上短跑。 SMH –

0

因爲函數是document.getElementsByClassName和不document.getElementByClassName。它返回一個數組。所以你需要獲得第一個元素並應用這個類。像這樣...

document.getElementsByClassName('away')[0].className = 'in'; 

爲簡單起見,你爲什麼不分配一個ID,DIV

<div class="away" id="mydiv"> 

,然後使用document.getElementById。像這樣...

document.getElementById('mydiv').className = 'in'; 

它更加簡單易用。

+0

謝謝!如果你的ID是「mydiv」,你會不會getElementById('mydiv')? –

+0

我想我做了你所說的一切,但它似乎仍然不起作用。 http://jsfiddle.net/wtH2Y/6/有什麼想法? –

+0

對不起,我提供了錯誤的ID。你能檢查我編輯的答案嗎? – mohkhan