Действия

Widget

Порталы: различия между версиями

Материал из ВикиВоины

Строка 155: Строка 155:
 
   $(window).scroll(function() {
 
   $(window).scroll(function() {
 
   var scrollTop = $(window).scrollTop();
 
   var scrollTop = $(window).scrollTop();
  $('.sections_title, .period_title').each(function() {
 
      var sectionId = $(this).attr('id');
 
      var sectionTop = $('#' + sectionId).offset().top;
 
      var sectionBottom = sectionTop + $('#' + sectionId).outerHeight();
 
      if (scrollTop >= sectionTop && scrollTop < sectionBottom) {
 
          $('.portal-contents a').removeClass('active');
 
          $('.portal-contents a[href="#' + sectionId + '"]').addClass('active');
 
      }
 
  });
 
  
 
     if (scrollTop > sidebarTop && scrollTop > portalContentsTop && !isFixed) {
 
     if (scrollTop > sidebarTop && scrollTop > portalContentsTop && !isFixed) {
Строка 173: Строка 164:
 
     }
 
     }
 
});
 
});
 +
 +
// Функция для добавления класса "active" к соответствующей ссылке в зависимости от текущей позиции на странице
 +
function setActiveLink() {
 +
    var scrollTop = $(window).scrollTop();
 +
    // Находим все заголовки и проверяем, какой из них виден на экране
 +
    $('.sections_title, .period_title').each(function() {
 +
        var sectionId = $(this).attr('id');
 +
        var sectionTop = $('#' + sectionId).offset().top;
 +
        var sectionBottom = sectionTop + $('#' + sectionId).outerHeight();
 +
        // Если верхняя граница раздела видна на экране
 +
        if (scrollTop >= sectionTop && scrollTop < sectionBottom) {
 +
            // Удаляем класс "active" у всех заголовков
 +
            $('.portal-contents a').removeClass('active');
 +
            // Находим соответствующий элемент в содержании и добавляем класс "active"
 +
            $('.portal-contents a[href="#' + sectionId + '"]').addClass('active');
 +
        }
 +
    });
 +
}
 +
 +
// Вызываем функцию setActiveLink при загрузке страницы и при прокрутке страницы
 +
$(window).on('load scroll', function() {
 +
    setActiveLink();
 +
});
 +
 +
// Вызываем функцию setActiveLink при клике на ссылку с #
 +
$('.portal-contents a[href^="#"]').on('click', function() {
 +
    setActiveLink();
 +
});
 +
  
 
});
 
});

Версия 10:29, 5 мая 2024