Позвольте мне объяснить ситуацию:в режиме реального времени обновления абсолютного позиционируется ДИВ при прокрутке
Существует относительное расположен sidebar
. После прокрутки вверху main-content
эта боковая панель меняет на абсолютный и затем обновляется в реальном времени до верхнего положения в окне (scrollTop окна).
Проблема в том, что она очень медленная и прерывистая (в Firefox), потому что она обновляется все время. Как я могу обновить позицию «в режиме реального времени» без нагрузки?
В настоящее время это выглядит следующим образом:
var headerOffset = $('#main-content').offset().top;
$(document).on('scroll', function() {
if(($(document).scrollTop() + 15) > $('#main-content').offset().top){
$('#sidebar').addClass('fixed');
$('#sidebar').css('top', ($(document).scrollTop() - headerOffset) + 15);
} else {
$('#sidebar').removeClass('fixed');
}
});
Заранее спасибо :)
Можете ли вы разместить html/css, пожалуйста? –
Совет: измените if (($ (document) .scrollTop() + 15)> $ ('# main-content'). Offset(). Top) до if (($ (document) .scrollTop() + 15) > headerOffset). Таким образом, ваш код не должен пересчитывать смещение вашего элемента основного контента каждый раз, когда вы прокручиваете. Для получения дополнительной информации, пожалуйста, напишите свой html/css или jsfiddle, как спросил Кирилл. – Jop
Ах да, пересчет не требуется при прокрутке. Спасибо! Вот сценарий с примером: http://jsfiddle.net/u3GpS/ – Gideon