It’s that horrible “Three Bug” in WordPress menu systems. Most people are just unprepared for something so simple in normal daily use as a WordPress site admin to break in such a bizarre way. It turns out that this bug in WordPress is easily solved. I’m not sure exactly what causes it, but I do know what makes it go away, and it’s simple:
Your theme is trying to use a font that hasn’t been loaded yet.
To fix this, you’ll have to identify what font it is, then add a preload statement to your site’s header. In my case, I use Divi, so here’s what mine looks like:
<!-- Preloading font to fix menu icon flashing 3 -->
<link rel="preload" href="/wp-content/themes/Divi/core/admin/fonts/modules.ttf" as="font" type="font/ttf" crossorigin="anonymous">
<!-- Preloading font to fix menu icon flashing - end -->
You’ll have to have a theme that allows for special code to be inserted into your page header. The Divi theme does this natively, but for other themes you may have to add a header/footer insertion plugin.
I did the above fix, and SHAZAM! Problem solved.