I've written my own in the past, yes. I suspect it's not built in because running digests on scroll events could be potentially very expensive. Same with drag events, since both can trigger dozens of events per second. I ended up making directives that updated the position of dragging/scrolling stuff manually, without running a digest, to do what we needed. Then I fired a digest when the drag/scroll stopped. But it all depends on your needs. Just be mindful of how you handle spammy events and digests.