Я новичок здесь и только начинаю узнавать о javascript/jQuery, у меня есть некоторые коды, которые я сделал, но я думаю, что это не эффективные, это слишком долго и любопытно повторять Вы, ребята, могли бы сделать более простую версию этого кода? Спасибо.
var sections = $('.section-page'),
sp = $('.sp'),
sp2 = $('.sp2'),
sp3 = $('.sp3');
$(window).on('scroll', function() {
var cur_pos = $(this).scrollTop();
sections.each(function() {
var top = $(this).offset().top - nav_height,
bottom = top + $(this).outerHeight();
if (cur_pos >= top && cur_pos <= bottom) {
nav.find('a').parent().closest('li').removeClass('current');
nav.find('a[href="#'+$(this).attr('id')+'"]').parent().closest('li').addClass('current');
}
});
sp.each(function() {
var top = $(this).offset().top - nav_height,
bottom = top + $(this).outerHeight();
if (cur_pos >= top && cur_pos <= bottom) {
nav.find('a').parent().closest('li').removeClass('current');
$('#cssmenu > ul > li:nth-child(7)').addClass('current');
}
});
sp2.each(function() {
var top = $(this).offset().top - nav_height,
bottom = top + $(this).outerHeight();
if (cur_pos >= top && cur_pos <= bottom) {
nav.find('a').parent().closest('li').removeClass('current');
$('#cssmenu > ul > li:nth-child(6)').addClass('current');
}
});
sp3.each(function() {
var top = $(this).offset().top - nav_height,
bottom = top + $(this).outerHeight();
if (cur_pos >= top && cur_pos <= bottom) {
nav.find('a').parent().closest('li').removeClass('current');
$('#cssmenu > ul > li:nth-child(3)').addClass('current');
}
});
});
StackOverflow на самом деле не место, чтобы просить улучшения рабочий код. – trincot
О, хорошо, thx для уведомления –