Page scroll position is not accurately restored

One of my apps has a lot of content on each page. My goal was to allow users to retain their scroll position if they navigate away and return.
I successfully implemented this using a scroll event to measure the distance scrolled from the top. I then store the value and then restore the scroll position when the same page loads into view using the value and the scrollToPoint function.
My problem is that the page is restored either above or below the original position when returned. I monitor the scroll top value before leaving the page and when returning, it is the same. The pages contain images (ion-images) that will load into view when scrolling. Can the images be the cause of this problem? Can anyone provide some ideas? Thanks