Hi @bluedotproductions,
Indeed, it’s still shifting on some mobile devices. Let me explain why 
The /framework/dist/js/site/x.js
file has integration with cornerstone/assets/dist/js/site/cs.fa34ec9.js
, the theme’s x.js
calls functions from cornerstone. Hence, removing or disabling x.js
also disables the integration between them making it appears that the issue is in x.js
, but it is not. The issue lies within the browser as it’s trying to stop e.preventDefault()
.
Every browser action has its own default behavior, like example, a form default behavior is to submit and reload the page, and a link default behavior is of course to link (if there is a link), or snap to the area where the anchor name matches (eg. if link has #name
).
Now, it’s essential for an app to prevent those default behavior by adding e.preventDefault()
, like instead of submitting a form and reload the page, it stops it for doing so, instead, user create another script that creates AJAX request based on form filled data and send it to the server without a need of reloading a page. It’s known implementation on web apps, even on Contact Form 7 plugin where it uses AJAX. Now, the form doesn’t have issues with preventDefault()
, I just use it as a sample of the default behavior which can be turned off using e.preventDefault()
.
Now, back to the links where it uses anchor name and this is what happened.
Links
-
Default: Link and snap (like if the matching form or area is located at the footer, then clicking the link will shift the scroll/focus to the footer immediately), again, this is a browser behavior but can be turned off
-
Buddypress integration: Where it opens the form upon click instead of linking
-
Theme’s integration: Instead of snapping on position, it creates a smooth scrolling effect.
Now, what it needs is just #2 and 3# to open a form and scroll it since we added preventDefault()
, just like in here. But some browser ignores e.preventDefault()
, then the #1 is executed along with #2, #3 causing the shifting. But I’m still investigating this, though, it will be a quite a battle since most of it is the restriction of the browser and the script library being used 
And thanks for sharing your temporary solution.
Thanks!