Задать вопрос
Qurel
@Qurel

Почему не работает якорь?

На сайте есть свернутый блок с сообщениями, после него идет кнопка "Написать сообщение". При клике на эту кнопку разворачивается сверху блок с сообщениями и якорь к блоку после кнопки. Якорь не работает:
Codepen
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@aleksandr97
Пишу на PHP, изучаю GOLANG
$('.scroll').on('click', function() {
	$('.block-top').animate({height: '1000px'},500, 'swing', () => {
		$('html,body').animate({ scrollTop: $('.anchor').offset().top }, 500);
	});
})


Потому что в примере который ты скинул, ты пытаешься скролить одновременно с анимацией. Чтобы корректно у тебя работал скрол, нужно сначало сделать анимацию ( в твоем случае увеличение heignt) и после этого уже начать скролить. У animate есть 4-ый параметр который отвечает за окончание выполнения анимации
https://api.jquery.com/animate/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ktim8168
@ktim8168
Frontend Developer
Потому что у якоря еще не обновился offsetTop, надо прибавить высоту анимирующегося элемента
$('.scroll').on('click', function() {
	const blockHeight = 1000;
	$('.block-top').animate({height: `${blockHeight}px`},500);
	var anchor = $('.anchor');
	$('html,body').animate({ scrollTop: anchor.offset().top + blockHeight }, 500);
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы