Не очень кроссбраузерно caniuse.com/#feat=input-email-tel-url, и не решает задачу в общем итоге. Ну и ограничивает пользователя в форматах данных (7, +7, 8)
(function($){
var heights = $.makeArray($('.container_home')).map(function(container,i){return container.offsetTop});
$(window).on('scroll', function() {
heights.forEach(function(height,i){
if (height < $('body').scrollTop() && height < heights[i+1]) { //Добавить проверку если находимся наверху или если докрутили до последнего блока (не будет следующего heights[i+1] блока)
$('.button_pagination span').removeClass('active');
$('.button_pagination')[i].addClass('active');
}
}
о. пардон. да. я про верхнее меню. про левое. я бы предложил написать одну функцию - "проверить активный раздел". она при инициализации собирает все высоты блоков. на onscroll делает проверку - насколько отскроллено окно (window.pageYOffset) и возвращает по сути индекс активного блока. используя этот индекс мы ставим активный класс в навигационном меню. код уменшьшится в 4 раза минимум
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.