Я хочу переместить цвет фона фиксированного элемента заголовка в прокрутке. Так как пользователь прокручивает веб-сайт с полным блоком страниц, заголовок тонко изменяется, чтобы дополнить цвета блоков. Я почти достиг этого на , однако я не могу понять, как измерить, сколько было прокручено в качестве флага для того, когда нужно изменить.jQuery - изменение цвета фона на прокрутке
Дополнительная информация: Размер прокрутки для изменения составляет 400 пикселей. Цвет фона сохраняется и выбирается в массиве. Для справки мой код jQuery приведен ниже:
$(document).ready(function(){
var bgArray = ["#252525","#333333","#454545","#777777"];
var scrollHeight = 400;
var scrolled = $(window).scrollTop(); //What is this measuring?
$(window).scroll(function() { //Can these conditions be neatened into one function?
if(scrolled < scrollHeight) {
$('header').css('background', bgArray[0]);
}
if(scrolled > scrollHeight) { // i.e more than 400px
$('header').css('background', bgArray[1]);
}
// and so on (800, 1200...)
})
})
Обратитесь к Pen для получения полного кода. Любые предложения приветствуются!
Некоторые браузеры тр igger событие прокрутки для каждого прокрученного пикселя, снижая производительность. Debouncing поможет с этим: http://benalman.com/projects/jquery-throttle-debounce-plugin/ – Martijn
Спасибо за это, где я должен добавить $ .debounce в отношении ответа ниже? – Andyjm
'$ (window) .on ('scroll', $ .throttle (250, function() {/ * Код идет здесь * /}));' – Martijn