2014-05-13 1 views
0

Я застрял с очень раздражающей проблемой. Я пытаюсь создать скрипт, который изменяет строку меню (CSS), когда пользователь имеет прокрутку X пикселей (высота элемента заголовка). Тем не менее, любой сценарий jQuery, который я пробовал, не правильно вычисляет пройденное расстояние. После некоторых пикселей он перестает подсчитываться и продолжает ..., а затем возобновляет, останавливает, возобновляет и т. Д.Рассчитайте, сколько прокрутки пользователя (включая поля и прокладки)

Я думаю, что это может иметь какое-то отношение к заполнению и/или полям. Во всяком случае, мне нужна поддержка.

Отъезд the current site с прилагаемым сценарием «прокрутка по расстоянию».

Сценарий:

$(window).scroll(function() { 
    var scrollTop = $(window).scrollTop(); 
    console.log(scrollTop); 
}); 
+0

Вы должны анимировать свои переходы, чтобы сделать его более гладким. Текущее поведение абсолютно правильно. Событие 'scroll' выдается, как только страница уже отображается. Предоставление вашей страницы занимает много времени. Следовательно, отставание в прокрутке. –

ответ

1

У вас есть два скроллбары будет для начала. Добавьте overflow: inherit; в css вашего тела, чтобы решить эту проблему.

DEMO

Это должно сделать примерно то, что вы хотите. При прокрутке 120px заголовок сглаживает верхнюю часть содержимого.

Если это не поможет, пожалуйста, опишите, что именно вы пытаетесь добиться немного лучше.

+0

Ну, это была именно проблема! Не могли бы вы объяснить свой ответ, почему удаление (не добавление 'inherit')' overflow-x: hidden; 'изменяет способ прокрутки страницы? overflow-x основан на горизонтальной оси, а прокрутка - вертикальная (y) ось? –

+1

Я рад! Проблема теперь исправлена, но у вас есть независимая полоса прокрутки для тела внутри html, которая создала две полосы прокрутки. Я предположил, что это был артефакт из шаблона параллакса, и это было всего лишь немного домашней работы, чтобы добавить 'overflow: inherit;' – Vaux42

Смежные вопросы