approximate preserve position on zoom