Я использую эти два скрипта, один для изменения класса при щелчке тега привязки, а другой - при изменении прокрутки вниз по странице. Когда я нажимаю тег привязки, класс изменяется, но из-за функции прокрутки он отбрасывает спины, я также анимируюсь на моей странице прокрутки. Как я могу избежать столкновений между ними.Навигационная прокрутка и щелчок на якорный тег
Изменить класс на основе привязки.
<script>
$(document).ready(function() {
$('.sidebar-nav li a').click(function(e) {
$('.sidebar-nav li').removeClass('active_nav');
var $parent = $(this).parent();
if (!$parent.hasClass('active_nav')) {
$parent.addClass('active_nav');
}
e.preventDefault();});});
</script>
Изменение класса на основе прокрутки
<script>
$(window).scroll(function() {
var windscroll = $(window).scrollTop();
$('.page').each(function(i) {
if ($(this).position().top <= windscroll) {
$('.sidebar-nav li').removeClass('active_nav');
$('.sidebar-nav li').eq(i).addClass('active_nav');
}
});});
</script>
прокруткой страницы
<script>
$('.scroll a').click(function(e) {
var goTo = $(this).attr('href'); // selects element that was clicked
$("html,body").animate({scrollTop:$(goTo).offset().top}, 1000);
e.preventDefault();
});
</script>
При прокрутке классы по списку элементов не меняются –
ах да, вы должны выполнить это на '$ (окна) .scroll();'. Я обновил ответ, и я сделал простую демонстрацию на jsfiddle. [** jsfiddle.net/d23bW/**] (http://jsfiddle.net/d23bW/1/). Я также думаю, что нет необходимости менять класс на якорный щелчок, поскольку вы уже делаете это на прокрутке. –
Yup! работает потрясающе. Я также удалил скрипт для якорных ссылок. Мне просто нужно это, чтобы работать .. Спасибо :) –