2017-05-25 13 views
-1

私はいくつかのhtmlページを持っており、1つのhtmlページだけにeventListenerを追加したいと思います。eventListenerを1つのhtmlページだけに追加しますか?

document.addEventListener('scroll', function(e){  
// along the scroll, the img's opacity changes. 
}); 

このhtmlページでは、ページをスクロールすると、フルページimgのopcacityが変更されます。

問題は、このリスナーがあまりにも他のページにはトリガー、

がどのように私は1つのページだけにこのリスナーを追加できるということですか?

+0

ヘッダーにこのコードがある場合は、そのページにのみ移動します。 – tech2017

+3

この機能を読み込みたい唯一のHTMLページの ''タグに追加して、あなたが持っているすべてのページにインポートされたjsファイルに入れないことができます。 – Lixus

+0

Lixusは正解です。別のオプションは、親要素にクラスを追加することです。 – atoms

答えて

1

あなたはwindow.locationを使用して、イベントハンドラを添付し、

if(window.location.href === 'YOUR_URL') { 
    document.addEventListener('scroll', function(e){  
    //your code 
    }); 
} 

それともbody上のいくつかのidを追加し、その存在を確認することができます。

<body id="animate-stuff"> 

if(document.getElementById('animate-stuff')) { 
    document.addEventListener('scroll', function(e){  
    //exec your code here 
    }); 
} 
+0

内部でそのチェックをするのは悪い考えのようですが、ifでラップしてイベントリスナーを適用しないほうが意味があります。 – epascarello

+0

@epascarello oops、私は、ちょうど彼のコードをコピーしたことを意味しました。ありがとう、変更されます –

関連する問題