Hallo,
document.getElementById("menu").style.display = "none";
die Umschaltung zwischen "none" und "block" ist immer problembehaftet, da der Browser gewisse Bereiche neu zeichnen muss. Wenn du nun zusätzlich den ausgeblendeten Bereicht dynamisch verschiebst kann es sein, dass das UpdateRect vom Browser nicht richtig berechnet wird. So sieht es bei dir jedenfalls aus.
Ich habe es auch mit visibility = "hidden" versucht, aber das hilf nur _manchmal_
Ich habe in deinem script beides gefunden.
layoutMenu.style.display = "none";
layoutMenu.style.visibility = "hidden";
verzichte auf display = "none"; und verwende nur die Eigenschaft visibility, dann sollte es klappen.
Grüße,
Jochen