2013-07-17 6 views
1

페이지가로드 될 때 클래스 이름을 변경하는 간단한 javascript 명령입니다. 내가 뭘 잘못하고 있는거야? http://jsfiddle.net/wtH2Y/4/자바 스크립트로 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()를 호출 할 수 없습니다.

  • getElementByClassNamegetElementsByClassName이어야합니다 (s에 유의하십시오). 또한 요소 컬렉션을 반환하므로 for 루프를 사용하여 루프를 반복해야합니다.
+0

잘 알고 있습니다. 나는 getElementById를 고수 할 것입니다. 그리고 돌진을 붙잡아 주어서 고마워. smh –

0

함수 document.getElementsByClassName하지 document.getElementByClassName 때문이다. 배열을 반환합니다. 따라서 첫 번째 요소를 가져와 클래스를 적용해야합니다. 이처럼 ...

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

은 왜 사업부

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

다음 document.getElementById을 사용할 수있는 ID를 할당하지 마십시오, 그것은 간단하게합니다. 이처럼 ...

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

훨씬 간단하고 사용하기 쉽습니다.

+0

감사합니다. 귀하의 ID가 "mydiv"이면 getElementById ('mydiv')가 아닐까요? –

+0

나는 당신이 말한 모든 것을했다고 생각하지만 여전히 효과가없는 것 같습니다. http://jsfiddle.net/wtH2Y/6/ 아이디어가 있습니까? –

+0

죄송합니다. 잘못된 ID를 제공했습니다. 편집 된 답변을 확인할 수 있습니까? – mohkhan

관련 문제