Как создать кнопку «вернуться к верху» с помощью JavaScript и jQuery
Кнопка «вернуться к верху» (scroll-to-top) возвращает пользователя к началу страницы одним кликом. Это простая, но полезная функция для длинных статических страниц и одностраничных приложений. Ниже описаны два подхода: чистый JavaScript и jQuery. Сохраните структуру, стили и поведение или адаптируйте под дизайн вашего сайта.
Как создать кнопку возврата вверх с помощью 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. Он короче в обработке анимации, особенно если на сайте уже подключена библиотека.
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-заметки
- Accessibility: используйте
- Не полагайтесь только на цвет для контраста — добавьте рамку/тень и достаточную контрастность для пользователей с нарушением зрения.
- На страницах с динамической загрузкой контента (инфинити-скролл) порог видимости и логика должны учитывать изменения высоты страницы.
- Для сайтов с большим количеством навигационных якорей подумайте о тонкой анимации и возможности отмены прокрутки пользователем (Esc/клавиатура).
Альтернативные подходы и когда это не подходит
- Нативная кнопка браузера: не всегда доступна/удобна; лучше предоставить явный контрол на странице.
- Sticky-панель навигации с кнопкой наверх: удобна, если у вас уже есть плавающий UI.
- Не нужна кнопка, если страницы короткие или сайт использует минимальную вертикальную прокрутку.
Примеры и шаблон для быстрой вставки (минимальный, доступный)
HTML:
CSS (минимум):
#toTop{position:fixed;right:16px;bottom:16px;display:none;padding:10px;border-radius:6px}
#toTop.show{display:block}JS (минимум):
const btn=document.getElementById('toTop');window.addEventListener('scroll',()=>{if(window.scrollY>250)btn.classList.add('show');else btn.classList.remove('show')});btn.addEventListener('click',()=>window.scrollTo({top:0,behavior:'smooth'}));Этот минимальный шаблон полезен для быстрой интеграции и последующей кастомизации.
FAQ
Q: Какой порог прокрутки лучше использовать?
A: Обычно 200–300 px — комфортный диапазон. Тестируйте на реальном контенте: для очень длинных страниц можно увеличить порог.
Q: Нужен ли jQuery для кнопки возврата вверх?
A: Нет. jQuery упрощает код, если библиотека уже используется, но чистый JavaScript работает без зависимостей.
Итог
Кнопка «вернуться к верху» — простое улучшение UX для длинных страниц. Вы можете реализовать её на чистом JavaScript или jQuery, добавить доступность через aria-label и тестировать на мобильных устройствах. Выберите реализацию, соответствующую архитектуре вашего сайта, и настройте стиль и пороги под аудиторию.
Похожие материалы
Игры с SafeDisc и SecuROM в Windows 10: как играть
Как избежать обновления до Windows 10 и откатиться
Пользовательская раскладка клавиатуры Windows