Когда вы применяете position:fixed
, он «поднимает» sidenav из потока документов, в результате чего содержимое ниже подпрыгивает, чтобы заполнить пробел.Чтобы предотвратить это, просто вставьте пустой элемент, который занимает место (и снова удалите его при переключении на position:relative
).
См. Исправленную демонстрацию: http://jsfiddle.net/7GfQ2/4/.
Обратите внимание, моя демонстрация просто показывает основную концепцию, и я был ленив.Вы должны прочитать все свои переменные из DOM и кэшировать их, прежде чем изменять какие-либо свойства CSS или добавлять / удалять элементы.В настоящее время он вызывает ненужные перекомпоновки страниц (в потенциально критичном для производительности разделе), поскольку переключается между чтением из DOM и изменением DOM.