Как сделать якорь на другую страницу плавным?

Здравствуйте. Есть якорь:
<a href="index#top" class="togame"></a>

<script>
		$(document).ready(function() {
		$('a[href^="#"]').click(function(){
		var el = $(this).attr('href');
		$('body').animate({
		scrollTop: $(el).offset().top}, 1000);
		return false;
		});
		});
	</script>


Как сделать, чтобы он переносил плавно? Если убрать index, то плавная прокрутка работает, но мне нужно, чтобы якорь был и с других страниц сайта.
  • Вопрос задан
  • 3133 просмотра
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
$(document).ready(function() {
	$('a[href^="#"]').click(function(e){
		e.preventDefault();
		var el = $(this);
		$('body').animate({
			scrollTop: el.offset().top}, 1000);
		});
});
Ответ написан
Это если вы имели ввиду когда плавную прокрутку надо сделать при переходе между страницами
например
site.name/page.php -> site.name/home.php#portfolio
document.body.scrollTop = 0;

	var window.scrolled = false;
	$(document).one('ready scroll hashchange', function(e) {
		if(window.scrolled != false || location.hash.length == 0) return;

		e.preventDefault();

		var name = location.hash.substr(1);
		var el = $('#'+name+', [name='+name+']');

		console.log(el);

		if(el.size()>0)
		{
			$('body, html').animate({
				scrollTop: el.offset().top
			}, 3000);

			window.scrolled = true;
		}

	});
Ответ написан
AIS
@AIS
Full-Stack Developer
Всегда для этого пользовался плагином jQuery.scrollTo
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы