В примере код для sticky блока. Где-то читал, что программирование - это алгоритмы + возможности языка, или что то похожее на это. Я по сути знаю что делают данные методы jquery в данном примере. Но вот сначала нужно понять какой алгоритм, а потом уже применять возможности библиотеки. Я его понимаю частично.
Здесь мы узнаем высоту от верха блока sticky
var stickyTop = $('.sticky').offset().top;
Внутри метода scroll мы сохраняем в windowTop значение scroll. Мне не понятно условие, по крайней мере не до конца.
stickyTop < windowTop первая часть, если отступ блока sticky от верха меньше чем сам скролл то присваиваем
('position', 'fixed');
иначе
('position', 'relative');
это я еще могу понять не до конца, остальная часть условия мне по логике не понятна.
$(window).scroll(function() {
var windowTop = $(window).scrollTop();
if (stickyTop < windowTop && $(".blue").height() + $(".blue").offset().top - $(".sticky").height() > windowTop) {
$('.sticky').css('position', 'fixed');
} else {
$('.sticky').css('position', 'relative');
}
});
Суть вопроса: Есть книги где можно натренировать алгоритмы для подобных задач? Я много находил книг по алгоритмизации, но не думаю, что они для подобных задач.