Vue plugin for detecting when elements enter and leave the viewport