2017-10-17 16 views
0

div内にdivがあり、div内にdivよりも小さいdivがあります。スクロール可能なdiv内のdivでスクロールイベントが発生しない

最初のコンテンツは、スクロールイベント

<div style="overflow:auto;height:200px"> 
    <div (scroll)="scrollHandler($event)">Hello {{name}}</div> 

.... Other content elements. 

を持っていますが、このスクロールイベントが機能していません。 ウィンドウ上ではなく、要素上でスクロールイベントをトリガーしたいという点に注意してください。

私はここに

https://plnkr.co/edit/Ib0fxBIb7syGdEtQ1Rz4

+0

スクロール – Vega

答えて

2

スクロールイベントハンドラは、外側のdiv、スクロールバーを持つものにする必要がありplunkrを持っている:あなたはthis modified plunkerをテストすることができ

<div style="overflow:auto; height:200px" (scroll)="scrollHandler($event)"> 
    <div>Hello {{name}}</div> 
    ... 
</div> 

(チェックコンソール、アラートコールを削除しました)。

+0

にディレクティブを設定し、hostlistenerを設定しますが、スクロール中に特定の要素がdivの先頭に到達したときにロジックを書き込む必要がある場合はどうなりますか?スクロールの上部に到達するリスト内の要素が赤に変わる必要があるとします。 この方法では、リスト内の各divのイベントにフックしたいと思う。 –

+0

[event.target.scrollTop]と[offsetTop]を比較することができます。これは[この変更されたプランカー](https://plnkr.co/edit/8wLQPSkDdW39qxEFYMGk?p=info)に示されています。 – ConnorsFan

関連する問題