Гид по технологиям

Как создать кнопку «вернуться к верху» с помощью JavaScript и jQuery

4 min read Frontend Обновлено 06 Jan 2026
Кнопка «вернуться к верху» — JavaScript и jQuery
Кнопка «вернуться к верху» — JavaScript и jQuery

Кнопка «вернуться к началу» — пример с JavaScript и jQuery

Кнопка «вернуться к верху» (scroll-to-top) возвращает пользователя к началу страницы одним кликом. Это простая, но полезная функция для длинных статических страниц и одностраничных приложений. Ниже описаны два подхода: чистый JavaScript и jQuery. Сохраните структуру, стили и поведение или адаптируйте под дизайн вашего сайта.

Как создать кнопку возврата вверх с помощью JavaScript

Кнопка «вернуться к началу» — реализация на JavaScript

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

HTML

  
  
  
  
   
 Scroll-to-Top button using JavaScript  
   

  

  
   
   
  
  
  
 

 Scroll To Top  

 
 

Scroll down to see the button.

 

Click the button to see smooth scroll to top.

 Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  
     
 

Фрагмент кнопки (обратить внимание на id):

  
   

Кнопка ссылается на элемент с id “top” — в этом примере это тег . Иконка использует Font Awesome.

JavaScript

// ===== Scroll to Top ====  
const scrollTop = document.getElementById('scrolltop')  
  
// When the page is loaded, hide the scroll-to-top button  
window.onload = () => {  
 scrollTop.style.visibility = "hidden";  
 scrollTop.style.opacity = 0;  
}  
  
// If the page is scrolled more than 200px,  
// display the scroll-to-top button  
// Otherwise keep the button hidden  
window.onscroll = () => {  
 if (window.scrollY > 200) {  
 scrollTop.style.visibility = "visible";  
 scrollTop.style.opacity = 1;  
 } else {  
 scrollTop.style.visibility = "hidden";  
 scrollTop.style.opacity = 0;  
 }  
};

Поведение:

  • Кнопка скрыта при загрузке страницы.
  • Кнопка становится видимой, когда прокрутка страницы превышает 200 пикселей. Значение 200 можно изменить под ваши требования.

CSS

html {  
 scroll-behavior: smooth;  
}  
  
#scrolltop {  
 display: block;  
 visibility: visible;  
 opacity: 1;  
 transition: visibility 0s, opacity 0.5s ease-in;  
 position: fixed;  
 bottom: 20px;  
 right: 20px;  
 background: rgba(255, 255, 255, 0.4);  
 border-radius: 20%;  
}  
  
.top-button {  
 text-decoration: none;  
 cursor: pointer;  
 padding: 30px;  
 color: #222;  
}  
  
body {  
 background: linear-gradient(180deg, #0697f9 0%, #f898bf 100%);  
 color: #fff;  
 font-family: 'Quicksand', sans-serif;  
 font-size: 24px;  
 line-height: 1.4;  
 text-align: center;  
 padding: 40px;  
}  
  
.long-text {  
 max-width: 700px;  
 margin: 0 auto;  
 padding: 40px;  
 background: rgba(0, 0, 0, 0.2);  
}

Этот CSS задаёт поведение плавной прокрутки, позицию и базовый внешний вид кнопки. Настройте размеры, цвета и анимации по дизайну.

Как создать кнопку возврата вверх с помощью jQuery

Кнопка «вернуться к началу» — реализация на jQuery

Ниже — пример с jQuery. Он короче в обработке анимации, особенно если на сайте уже подключена библиотека.

HTML

  
  
  
  
   
 Back to top button using jQuery  
   
   
   
   
  
  
  

  
   
  
  

  
 
 

Back to Top Button

 

Scroll down the page

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  

Lorem ipsum dolor sit amet, consectetur adipiscing elit.  Curabitur efficitur porttitor ipsum, sed eleifend velit sagittis ut.  Maecenas eu elit vitae ipsum gravida gravida ut id erat.  Nullam accumsan, nisi ac imperdiet elementum, nibh augue efficitur ipsum, ac ultrices erat massa id massa.  Aliquam cursus lacus a augue gravida, pretium vehicula velit interdum.  

 
 

Главное — сам элемент кнопки:

jQuery

// ===== Scroll to Top ====  
var btn = $('#button');  
  
// If the page is scrolled more than 300px,  
// show the scroll-to-top button  
// Otherwise hide the button  
$(window).scroll(function() {  
 if ($(window).scrollTop() > 300) {  
 btn.addClass('show');  
 } else {  
 btn.removeClass('show');  
 }  
});  
  
btn.on('click', function(e) {  
 e.preventDefault();  
 $('html, body').animate({scrollTop:0}, '300');  
});

Здесь класс “show” делает кнопку видимой при прокрутке более 300 пикселей. Значение порога и длительность анимации можете настраивать.

CSS

#button {  
 display: inline-block;  
 background-color: #FF9800;  
 width: 50px;  
 height: 50px;  
 text-align: center;  
 border-radius: 4px;  
 position: fixed;  
 bottom: 30px;  
 right: 30px;  
 transition: background-color .3s,  
 opacity .5s, visibility .5s;  
 opacity: 0;  
 visibility: hidden;  
 z-index: 1000;  
}  
  
#button::after {  
 content: "\f077";  
 font-family: FontAwesome;  
 font-weight: normal;  
 font-style: normal;  
 font-size: 2em;  
 line-height: 50px;  
 color: #fff;  
}  
  
#button:hover {  
 cursor: pointer;  
 background-color: #333;  
}  
  
#button:active {  
 background-color: #555;  
}  
  
#button.show {  
 opacity: 1;  
 visibility: visible;  
}  
  
/* Styles for the content section */  
.content {  
 width: 77%;  
 margin: 50px auto;  
 font-family: 'Merriweather', serif;  
 font-size: 17px;  
 color: #6c767a;  
 line-height: 1.9;  
}  
  
@media (min-width: 500px) {  
 .content {  
 width: 43%;  
 }  
  
#button {  
 margin: 30px;  
}  
}  
  
.content h1 {  
 margin-bottom: -10px;  
 color: #03a9f4;  
 line-height: 1.5;  
}  
  
.content h3 {  
 font-style: italic;  
 color: #96a2a7;  
}

Эти стили задают вид кнопки и поведение видимости через класс “show”.

Краткое руководство по выбору подхода

  • Если на сайте уже подключён jQuery, реализация с jQuery короче и привычней.
  • Для новых проектов рекомендуем чистый JavaScript: меньше зависимостей и лучше производительность.
  • Используйте CSS-переходы и scroll-behavior: smooth для нативной плавной прокрутки.

Критерии приёмки

  • Кнопка появляется после достижения порога прокрутки (например, 200–300 px).
  • При клике страница возвращается наверх плавно.
  • Кнопка доступна с клавиатуры (фокусируемая) и имеет понятный aria-label.
  • Кнопка корректно отображается на мобильных и десктопных разрешениях.

Чеклист для разработчика

  • Добавить семантический элемент (кнопка или ссылка) с id/class.
  • Убедиться, что элемент доступен: tabindex, aria-label=”Вернуться к началу”.
  • Настроить порог видимости и тестировать на длинных страницах.
  • Проверить на iOS/Android (особенности плавной прокрутки).
  • Тестировать с клавиатурой и скринридерами.

Доступность, безопасность и UX-заметки

Альтернативные подходы и когда это не подходит

Примеры и шаблон для быстрой вставки (минимальный, доступный)

HTML:

CSS (минимум):

JS (минимум):

Этот минимальный шаблон полезен для быстрой интеграции и последующей кастомизации.

FAQ

Q: Какой порог прокрутки лучше использовать?

A: Обычно 200–300 px — комфортный диапазон. Тестируйте на реальном контенте: для очень длинных страниц можно увеличить порог.

Q: Нужен ли jQuery для кнопки возврата вверх?

A: Нет. jQuery упрощает код, если библиотека уже используется, но чистый JavaScript работает без зависимостей.

Итог

Кнопка «вернуться к верху» — простое улучшение UX для длинных страниц. Вы можете реализовать её на чистом JavaScript или jQuery, добавить доступность через aria-label и тестировать на мобильных устройствах. Выберите реализацию, соответствующую архитектуре вашего сайта, и настройте стиль и пороги под аудиторию.

Автор
Редакция

Похожие материалы

Игры с SafeDisc и SecuROM в Windows 10: как играть
Игры

Игры с SafeDisc и SecuROM в Windows 10: как играть

Как избежать обновления до Windows 10 и откатиться
Windows

Как избежать обновления до Windows 10 и откатиться

Пользовательская раскладка клавиатуры Windows
How-to

Пользовательская раскладка клавиатуры Windows

Как удалить Bing из Google Chrome
браузер

Как удалить Bing из Google Chrome

Homebrew для Mac: установка и управление
Инструменты

Homebrew для Mac: установка и управление

Удалить старые фото профиля в Telegram
How-to

Удалить старые фото профиля в Telegram