2017-08-24 3 views
0

Heyo、書き換え視差スクリプトではなく1つのID

の複数のクラスを読み込むので、私はこのスクリプトを得ることができますどのような方法があります:

function parallax(){ 
    var paralax_effect = document.getElementById('div1'); 
    paralax_effect.style.top = -(window.pageYOffset/4)+'px'; 
} 
window.addEventListener('scroll', parallax, false); 

は、複数のClasses代わりの1 Idを実行するためには?

私はこの試みた:

function parallax(){ 
    var paralax_effect = document.getElementsByClassName('div1'); 
    paralax_effect.style.top = -(window.pageYOffset/4)+'px'; 
} 
window.addEventListener('scroll', parallax, false); 

をが、これは何とか動作しません。

ありがとうございます!

答えて

1

getElementsByClassNameは、単一の要素ではなく要素の全体の一覧を返します。一方、getElementById(要素/要素という語の違いに気づく)は単一の要素のみを返します。

したがって、2番目のコードでは、 "div1"クラスの要素のリストをvar paralax_effectに保存します。これらの要素を操作するには、forでループする必要があります。例:

for (var i = 0; i < paralax_effect.length; i++) { 
    current_element = paralax_effect[i] 
    current_element.style.top = -(window.pageYOffset/4)+'px'; 
} 

これには、HTMLに少なくとも1つの要素がclass="div1"であることが必要です。

+1

これは完璧に機能しました!助けと説明をありがとう。あなたは私の一日を救った:D – Pelle2010

関連する問題