Для любых плавных действий в jQuery используется функция
Более универсальная плавная прокрутка к якорю #:
animate
. Но для того, чтобы плавно проскроллить страницу до определённого элемента сначала нужно узнать его расположение. Это делается с помощью.offset().top
.Пример
использования этих несложный функций можно увидеть ниже:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <script> // В случае, если мы знаем какие будут якоря: $(document).ready(function(){ $("#anchor-link-1").on("click", function(){ var scroll=$("#anchor-1").offset().top; $('html, body').animate({scrollTop: scroll}, 1100); }); $("#anchor-link-2").on("click", function(){ var scroll=$("#anchor-2").offset().top; $('html, body').animate({scrollTop: scroll}, 1100); }); $("#anchor-link-3").on("click", function(){ var scroll=$("#anchor-3").offset().top; $('html, body').animate({scrollTop: scroll}, 1100); }); $("#anchor-link-4").on("click", function(){ var scroll=$("#anchor-4").offset().top; $('html, body').animate({scrollTop: scroll}, 1100); }); });</script><style> div.anchor{ width:600px; height:150px; border:1px solid #aaa; margin:20px; padding:20px; } span.anchor{ color:#35c; text-decoration: underline; cursor:pointer; }</style> <div id="anchor-1" class="anchor">1 блок</div><div id="anchor-2" class="anchor">2 блок</div><div id="anchor-3" class="anchor">3 блок</div><div id="anchor-4" class="anchor">4 блок</div> <span id="anchor-link-1" class="anchor">Переместиться к 1 блоку</span><span id="anchor-link-2" class="anchor">Переместиться к 2 блоку</span><span id="anchor-link-3" class="anchor">Переместиться к 3 блоку</span><span id="anchor-link-4" class="anchor">Переместиться к 4 блоку</span> |
1 блок
2 блок
3 блок
4 блок
Переместиться к 1 блоку
Переместиться к 2 блоку
Переместиться к 3 блоку
Переместиться к 4 блоку1 2 3 4 5 6 7 8 9 10 11 | <script>$("body").on('click', '[href*="#"]', function(e){ e.preventDefault(); $('html,body').stop().animate({ scrollTop: $(this.hash).offset().top }, 1000);});</script><a href="#anchor-1">Переместиться ссылкой к 1 блоку</a><a href="#anchor-2">Переместиться ссылкой к 2 блоку</a><a href="#anchor-3">Переместиться ссылкой к 3 блоку</a><a href="#anchor-4">Переместиться ссылкой к 4 блоку</a> |
Переместиться ссылкой к 1 блоку
Переместиться ссылкой к 2 блоку
Переместиться ссылкой к 3 блоку
Переместиться ссылкой к 4 блоку
Спасибо за внимание.