1

ページの読み込み時にクラス名を変更するのは、単純な JavaScript コマンドです。それが機能していないことは何を間違っていますか?http://jsfiddle.net/wtH2Y/4/

<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>
4

2 に答える 2

3

いくつかのこと:

  • 関数名にダッシュを含めることはできません。関数の名前を変更します。
  • 名前付き関数を使用している場合、この方法でプロパティに割り当てません。匿名にするか、次のように割り当てます。

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

    そうしないと、 を呼び出すことができませんfoo()

  • getElementByClassNameである必要がありますgetElementsByClassName( に注意してくださいs)。forまた、要素のコレクションを返すため、ループで反復処理する必要があります。
于 2013-07-17T01:42:18.407 に答える
0

関数はdocument.getElementsByClassNameであり、 ではないためdocument.getElementByClassNameです。配列を返します。したがって、最初の要素を取得してクラスを適用する必要があります。このような...

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

簡単にするために、divにidを割り当ててみませんか

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

を使用しますdocument.getElementById。このような...

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

はるかにシンプルで使いやすいです。

于 2013-07-17T01:40:48.083 に答える