Прокрутить шпион на атрибут данных и массив
У меня есть массив разделов страницы из CMS, мне нужно сначала привязать меню к разделу на основе атрибутов данных data-target
тогда data-index
(Массив)
У меня есть якорь внизу рабочего раздела, однако я не могу заставить класс работать с соответствующим разделом и пунктом меню. Мне нужно, чтобы граница применялась под именем элемента в меню либо по щелчку, либо при прокрутке до раздела.
Моя функция JavaScript для привязки к разделу
Этот раздел контролирует привязку к определенному разделу на странице, однако я не могу получить класс menuFollower-t
чтобы работать с текущим разделом, в настоящее время он работает только в том случае, если вы щелкнете по пункту меню и доза не исчезнет, если вы щелкнете по следующему пункту, а также не будет работать, если вы перейдете в раздел
мое menuFollower-т просто background: black;
для тестирования
_pdpNavigationScrollTo = function () {
_pdpLink.on('click', function (e) {
e.preventDefault();
var _fixedNavHeight, _target, _target_index, _scrollTopPixels;
if (!INFORMA.global.device.isDesktop) {
_target = $(this).data('target');
_target_index = $(this).data('target-index');
$('#pdp-sections').slideUp();
_pdpNavigationHeight = $('#pdp-navigation .nav-pdp-nondesktop').outerHeight();
if (!_pdpFixed)
_pdpSectionsHeight = $('#pdp-sections').height();
else
_pdpSectionsHeight = 0;
_fixedNavHeight = _navHeightMobile;
var anchorElementArray = $("[id='" + _target + "']");
// console.log(anchorElementArray[_target_index]);
if (anchorElementArray.length >= [_target_index]) {
//Fix ben-2018-onscroll
_scrollTopPixels = $(anchorElementArray[_target_index]).offset().top - (_fixedNavHeight + _pdpNavigationHeight + _pdpSectionsHeight);
//End
// console.log(.offset)
} else {
_scrollTopPixels = $("#" + _target).offset().top - (_fixedNavHeight + _pdpNavigationHeight + _pdpSectionsHeight);
}
$('html, body').stop().animate({
scrollTop: _scrollTopPixels
}, 1000);
} else {
$('#pdp-navigation li').removeClass('selected');
$('#pdp-navigation li').addClass('select-options');
_pdpNavigationHeight = _pdpNavigation.height();
_target = $(this).data('target');
_target_index = $(this).data('target-index');
_fixedNavHeight = _navHeightMobile;
var anchorElementArrayDesk = $("[id='" + _target + "']");
if (anchorElementArrayDesk.length >= [_target_index]) {
//Fix ben-2018-onscroll
_scrollTopPixels = $(anchorElementArrayDesk[_target_index]).offset().top - (_fixedNavHeight + _pdpNavigationHeight);
//End
$(this).addClass('menuFollower-t');
} else {
_scrollTopPixels = $("#" + _target).offset().top - (_fixedNavHeight + _pdpNavigationHeight);
}
$('html, body').stop().animate({
scrollTop: _scrollTopPixels
}, 1000);
}
})
};