What if your data does not load in 3 seconds then? It won’t scroll as the element won’t be created yet.
Also what if the data is rendered in 0.5 seconds, then you wait every time until 3 seconds pass to scroll?
What you need here is a repeat children region (not plain repeat) and use the onupdated event to scroll to your id coming from the query parameter.
No need of PHP code and timeout hacks.

