2016-07-05 4 views
1

Это вопрос, основанный на этом вопросе: parallax navigation menu title to show.Меню навигации Parallax

Так что я смог сделать это, чтобы показать название меню, но мне было интересно, есть ли в любом случае, я могу изменить css, чтобы изменить значение меню, когда человек находится в определенном разделе заголовка.

В настоящее время в примере в предыдущем вопросе он имеет один цвет (синий). Я думал о том, чтобы сделать его прозрачным эффектом для круга или изменить его на другой цвет, чтобы сообщить им, что они находятся в определенном разделе веб-страницы.

Спасибо!

+0

Чтобы изменить его в зависимости от положения прокрутки, вам нужно будет использовать JavaScript - это ответ jQuery? – will

+0

да! Все в порядке! –

ответ

1

Вы можете использовать функцию прокрутки jQuery для обнаружения, когда один из ваших разделов находится в поле зрения, вот так!

var thisScroll = 0, lastScroll = 0; 
$(window).scroll(function(){ 
    //Detect your current scroll position 
    thisScroll = $(window).scrollTop(); 

    //Loop through each article 
    $('#content article').each(function(){ 

    //Get the element's distance from top of the viewport, including scroll 
    var myPos = $(this).offset().top - thisScroll; 

    //Scrolling down 
    if(thisScroll > lastScroll){ 
     if(myPos > 0 && myPos < $(window).height()){ 
     console.log($(this).attr('id')); 
     } 
    } 
    //Scrolling up 
    else{ 
     if(myPos > -$(window).height() && myPos < 0){ 
     console.log($(this).attr('id')); 
     } 
    } 

    }); 

    //If lastScroll is higher than thisScroll, the user must have scrolled up 
    lastScroll = thisScroll; 
}); 

функции прокрутки просто проверить, если элемент находится в вашем окне просмотра прокрутки вниз (от 0 до высоты экрана). Если вы прокручиваете вверх, сравнения перевернуты, потому что смещение рассчитывается из верхней части вашего элемента - так что вы ищете то, что от 0 до отрицательной высоты вашего видового экрана. Дайте мне знать, если это имеет смысл!

+0

Ум, это имеет смысл, но я как бы путаюсь, что я должен поставить для проверки цикла, потому что в настоящее время я устанавливаю каждый раздел в другом идентификаторе, должен ли я обернуть их все и поместить в один полный идентификатор? –

+0

Пока это единственное место, где вы используете статьи, вы должны хорошо использовать статью в качестве своего селектора. Если нет, я бы рекомендовал добавить класс в каждую статью, которую вы можете использовать в качестве селектора, чтобы предотвратить конфликты. – will

+0

Вы также можете использовать статью [id] в качестве своего селектора (дословно), который будет ориентирован только на статьи с присвоенным идентификатором. – will

Смежные вопросы