Использование переменной для установки верхней части прокрутки с функцией анимации

#javascript #variables #scrolltop

#язык JavaScript #переменные #столешница для прокрутки

Вопрос:

У меня есть ряд дивов, которые сворачиваются и открываются, и я хотел бы, чтобы браузер прокручивал их до верхней части открытых дивов.

Я пытаюсь сделать это, используя привязанные ссылки и сохраняя привязанную ссылку в переменной «scrollClass», но мой код не работает. Однако, когда я тестирую журнал консоли, он выводит именно то, что я хочу, чтобы он выводил. Я не уверен, является ли это синтаксической ситуацией или нет.

Я был бы признателен за любую помощь, которую я могу здесь получить.

Заранее спасибо.

 lt;scriptgt; $('.discover-btn-open, .discover-btn-open a').click(function(e) { e.preventDefault(); var currentElement = $(document.activeElement); var scrollClass = $(this).closest('.discover-inner').find('#discover- anchor').attr('href'); $(".discover-inner").removeClass("discover-inner-open"); $(this).closest(".discover-inner").addClass("discover-inner-open"); console.log(scrollClass); $('html, body').animate({scrollTop: $(scrollClass).offset().top - 100}, 450); });  $('.discover-close, .discover-close a').click(function(e) { e.preventDefault(); $(this).closest(".discover-inner").removeClass("discover-inner-open"); });  lt;/scriptgt;  

Комментарии:

1. Может быть, войти $(scrollClass).offset()

2. Не совсем понимаю, что ты имеешь в виду.

Ответ №1:

Вы устанавливаете атрибут href scrollClass , и когда вы пытаетесь использовать его в качестве элемента, он не будет работать. Попробуйте удалить attr("href") деталь и использовать .offset затем.

Вы также можете просто нажать на anchor элемент, к которому хотите перейти, с помощью jQuery.

Комментарии:

1. Да, спасибо, это очень помогло. Получить координаты свитка сразу же было правильным решением.

2. var класс прокрутки = $(это).ближайший(‘.discover-внутренний’).смещение().верх; $(«html, тело»).анимация({scrollTop: класс прокрутки -100}, 450);

3. Классно! Рад, что у тебя все получилось