To size the middle correctly, and to create the drag boundaries, you’ll need to use local variables. Local variables allow you to get values (such as top, bottom, width, etc.) from other widgets on the page. Here’s a post describing how to use them.
For instance, when dragging the top circle, you’ll need to know where the bottom circle is in order to properly size the line in between them.
I updated the OnMove code of both circles, and added drag boundaries.
Dragging the line itself to move the whole timeline is pretty straightforward: you use OnDrag, but instead of moving the line on drag, you move the whole dynamic panel that contains the slider.
Here is the updated file: DragTimelineY.rp (66.5 KB)