@butize

Как менять цвет пунктов меню при скролле в зависимости от цвета фона?

Здравствуйте! У меня такая проблема: нужно менять цвет пунктов меню при скролле в зависимости от цвета блоков страницы. Например, если я сейчас скролю на белом фоне, то пункты должны быть черными и наоборот. Также необходимо учесть ситуацию, при которой часть пунктов меню находится еще на темном фоне, а часть уже на белом, соответственно они должны быть разных цветов. (показала на картинке). Я искала решение и подключала какую-то библиотеку, которая определяет цвет элемента, но так и не смогла довести это до ума( Может быть, кто то знает какой-нибудь подходящий плагин или знает сайт, на котором такой функционал реализован. Спасибо за любую помощь!
5e931bc2078c6247749035.png
  • Вопрос задан
  • 2442 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl
можно попробовать поиграться с css mix-blend-mode

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
beliyadm
@beliyadm
because open source matters
Еще можно пойти по классике на JS autopoisk.msk.ru (при прокрутке в меню подставляется класс актив и меняется цвет ссылки), прописать у ссылок меню нужный data-color и вместо класса актив подставлять в CSS нужное значение

$(window).scroll(function(){
		var $sections = $('section');
		$sections.each(function(i,el){
		var top  = $(el).offset().top-100;
		var bottom = top +$(el).height();
		var scroll = $(window).scrollTop();
		var id = $(el).attr('id');
		if( scroll > top && scroll < bottom){
			$('a.active').removeClass('active');
			$('a[href="#'+id+'"]').addClass('active');
		}
	   })
	});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы