2017-10-17 97 views
0

我有一個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

scroll事件處理程序應該是在外層div一個plunkr,具有滾動條之一:

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

您可以測試this modified plunker(檢查控制檯,我刪除了警報呼叫)。

+0

上設置hostlistener,但是如果在滾動時特定元素達到div頂部時必須編寫邏輯,該怎麼辦?假設列表中到達滾動頂部的元素需要變成紅色。 這樣我想掛鉤列表中每個div的事件。 –

+0

您可以將'event.target.scrollTop'與元素的'offsetTop'進行比較,如[修改後的plunker](https://plnkr.co/edit/8wLQPSkDdW39qxEFYMGk?p=info)所示。 – ConnorsFan