Я добавляю некоторый класс к ссылке, когда ее цель видна в окне. Но когда я нажимаю эту ссылку, класс добавляется, затем удаляется, а затем добавляется снова, что создает нежелательный «мигающий» эффект. Эта скрипка http://jsfiddle.net/inliner/gx7ocfhr/6/ объясняет все это лучше. Прокрутите немного, затем щелкните один из трех элементов в заголовке. Что я здесь делаю неправильно? Как предотвратить это мигание?addClass мигает при прокрутке окна
function isScrolledIntoView(elem)
{
var docViewTop = $(window).scrollTop();
var docViewBottom = docViewTop + $(window).height();
var elemTop = $(elem).offset().top;
var elemBottom = elemTop + $(elem).height();
return ((elemTop - docViewTop)<= 240) && ((elemBottom - 70) >= docViewTop);
}
$(window).scroll(function(){
isScrolledIntoView("#advertizers") ? $(".s1").addClass("active") : $(".s1").removeClass("active");
isScrolledIntoView("#traders") ? $(".s2").addClass("active") : $(".s2").removeClass("active");
isScrolledIntoView("#agencies") ? $(".s3").addClass("active") : $(".s3").removeClass("active");
});
Спасибо Ахмад! Это прекрасно работает. Поэтому идея состоит в том, чтобы сначала прокрутить, а затем изменить класс. – Andrey