Zen Ter: я делаю именно как вы сказали, на каждом сломе менять запрос. Но не знаю, правильно это или нет. Мне так больше нравится и косяков меньше. Это имхо.
dima_maketov: Это всё легко проверяется так - кликаем на О нас, потом на Продукцию. О нас криво, Продукция норм. Вовращаемся в начало страницы. Снова кликаем по Продукция, а потом О нас, в обратном порядке. И видим обратную картину. О нас норм, продукция криво. Значит потерянные 60 пикселей как раз и решают эту проблему.
dima_maketov: фактически получается такая картина - вы кликаете по меню, в этот самый момент скрипт высчитывает, сколько пикселей прокрутить до блока. Но меню скрывается во время скролла и скрипт это не учитывает, пролетая лишние 60 пикселей вниз. А когда вы кликаете второй раз, то скрипт уже правильно расчитывает место, куда нужно скрольнуть. Всё логично.
dima_maketov: добавьте для #slider такие же классы, loading и scrolling, при .loading { margin: 0; }, а при .scrolling { margin-top: 60px; }. И допишите скрипт $('.head-line, #slider') в двух местах.