window.scrollTo() в JavaScript — прокрутити сторінку


Загальний опис

scrollTo() - це метод об'єкта Window в мові програмування JavaScript, призначений для програмної прокрутки вікна до вказаної позиції на веб-сторінці. Його основна функціональність полягає в тому, щоб забезпечити можливість точного визначення положення перегляду сторінки, що може бути корисним при розробці адаптивних та інтерактивних веб-додатків.

scrollTo() використовується для того, щоб змінити поточне положення прокрутки вікна на вказану координату в пікселях. Це забезпечує точний і гнучкий контроль над прокруткою сторінки, що дозволяє створювати веб-додатки з вишуканим та інтуїтивно зрозумілим інтерфейсом.

Застосування на практиці: Почнемо з простого прикладу використання scrollTo() для прокрутки вгору на початок сторінки:

// Прокрутити на початок сторінки
window.scrollTo(0, 0);

У цьому прикладі scrollTo(0, 0) вказує, що вікно має бути прокручено до верхнього лівого кута сторінки. Подібно до цього, можна використовувати scrollTo(x, y), де x та y - це координати в пікселях, для прокрутки до конкретної позиції.

Далі розглянемо сценарій використання scrollTo() при натисканні на кнопку:

// Прокрутити до елементу з id="targetElement" при кліку на кнопку з id="scrollButton"
var scrollButton = document.getElementById('scrollButton');
var targetElement = document.getElementById('targetElement');

scrollButton.addEventListener('click', function() {
    targetElement.scrollIntoView({ behavior: 'smooth' });
});

У цьому випадку, коли користувач клікає на кнопку з ідентифікатором scrollButton, сторінка плавно прокручується до елемента з ідентифікатором targetElement. Використання scrollIntoView() з параметром { behavior: 'smooth' } забезпечує плавну анімацію прокрутки до цільового елемента.

Також, можна використовувати scrollTo() для реалізації динамічної анімації при прокручуванні сторінки. Розглянемо приклад, де прокрутка змінює прозорість фонового зображення:

// Змінити прозорість фонового зображення в залежності від значення прокрутки
window.addEventListener('scroll', function() {
    var scrollPosition = window.scrollY;
    var backgroundImage = document.getElementById('backgroundImage');

    // Застосувати ефект анімації на основі значення прокрутки
    backgroundImage.style.opacity = 1 - scrollPosition / 500;
});

У цьому прикладі, якщо користувач прокручує сторінку, прозорість фонового зображення змінюється в залежності від значення прокрутки, створюючи ефект анімації.

Використовуючи scrollTo(), розробники можуть створювати динамічні та інтерактивні веб-додатки, покращуючи користувацький досвід та надаючи точний контроль над прокруткою вікна.

автор: Bond

Загальний опис

Сучасна форма приймає об'єкт: scrollTo({ top: 0, behavior: 'smooth' }). Саме behavior і робить прокрутку плавною — без жодних бібліотек і анімацій вручну.

Стара форма з двома числами (scrollTo(0, 0)) теж працює, але прокручує миттєво, ривком.

Щоб прокрутити до конкретного елемента, зручніше element.scrollIntoView({ behavior: 'smooth', block: 'center' }) — не треба рахувати координати.

автор: NagarD

Порада

Використовуйте метод для реагування на розмір екрану, автоматично коригуючи положення прокрутки. Це покращить взаємодію з різними пристроями.

автор: Bond
Порада

Використовуйте ID елементів як міток для scrollTo(). При кліці на елементи навігації викликайте метод, щоб плавно прокрутити до відповідних секцій.

автор: Bond
Порада

Використовуйте scrollTo() для створення плавних переходів на сторінці, встановлюючи абсолютні координати. Наприклад:

window.scrollTo({
  top: 0,
  left: 0,
  behavior: 'smooth'
});
автор: Bond
Порада

Зручно використовувати scrollTo() для автоматичної прокрутки до кінця документу під час завантаження сторінки:

window.onload = function() {
  window.scrollTo(0, document.body.scrollHeight);
};
автор: Bond

Синтаксис

scrollTo(x-coord, y-coord)
scrollTo(options)

Параметри

options

Об'єкт, що містить наступні параметри:

  • top (необов'язковий): Вертикальна координата, до якої потрібно прокрутити вміст вікна.
  • left (необов'язковий): Горизонтальна координата, до якої потрібно прокрутити вміст вікна.
  • behavior (необов'язковий): Режим прокрутки, який може бути "auto", "instant" або "smooth".
автор: Bond

Повернення

none

Повертає undefined.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 4 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Deno
—

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використовуємо метод scrollTo() для автоматичної прокрутки сторінки до верхнього краю вказаного елемента (з id targetElement) при завантаженні сторінки. Параметр behavior: 'smooth' додає плавну анімацію прокрутки.

HTML

<div id="targetElement">Демонстраційний елемент</div>

JS

// Отримання елемента, до якого потрібно прокрутити
const targetElement = document.getElementById('targetElement');

// Використання scrollTo() для прокрутки до верхнього краю цільового елемента
window.scrollTo({
  top: targetElement.offsetTop,
  left: 0,
  behavior: 'smooth' // Додає плавну анімацію
});
автор: Bond

У цьому прикладі ми створюємо кнопку, і при кліці на неї викликається функція scrollToTop(), яка використовує метод scrollTo() для плавної прокрутки до верхньої частини сторінки.

HTML

<button id="scrollToTopButton">Прокрутити</button>

JS

// Функція, яка викликається при кліці на кнопку "Прокрутити вгору"
function scrollToTop() {
  // Використання scrollTo() для прокрутки до верхньої частини сторінки
  window.scrollTo({
    top: 0,
    left: 0,
    behavior: 'smooth' // Додає плавну анімацію
  });
}

// Додавання обробника подій до кнопки
document.getElementById('scrollToTopButton').addEventListener('click', scrollToTop);
автор: Bond

У цьому прикладі ви бачите кнопку "Прокрутити вгору", яка використовуэ метод scrollTo() для плавної прокрутки до верху вмісту вікна.

HTML

<header>
  <h2 class="title">Window: scrollTo() method</h2>
  <p class="description">Цей метод прокручує вміст вікна до вказаних координат.</p>
</header>

<main>
  <div class="result" id="result">
    <p>Прокрутка вмісту</p>
    <div class="scroll-box" id="scrollBox">Lorem ipsum dolor sit amet...</div>
    <button onclick="scrollToTop()">Прокрутити вгору</button>
  </div>
</main>

CSS

body {
  font-size: 16px;
  line-height: 1.5;
  font-family: monospace;
}

header {
  background-color: #f1f1f1;
  margin-bottom: 25px;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

header h2.title {
  padding-bottom: 15px;
  border-bottom: 1px solid #999;
}

header p.description {
  font-style: italic;
  color: #222;
}

.result {
  background-color: #f8f8f8;
  padding: 15px;
  -webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  -moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
  box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}

button {
  margin: 5px;
  padding: 10px;
  font-size: 16px;
  cursor: pointer;
}

.scroll-box {
  height: 400px;
  overflow-y: scroll;
  border: 1px solid #ccc;
  margin-bottom: 20px;
}

JS

function scrollToTop() {
  window.scrollTo({
    top: 0,
    left: 0,
    behavior: 'smooth' });

}
//# sourceURL=pen.js
автор: Bond

Кнопка «нагору» й прокрутка до елемента.

HTML

<button id="top">Нагору</button>
<div style="height:150vh"></div>
<h2 id="target">Розділ</h2>

JS

document.getElementById('top').addEventListener('click', () => {
    window.scrollTo({ top: 0, behavior: 'smooth' });
});

// до конкретного елемента — без рахування координат
document.getElementById('target').scrollIntoView({
    behavior: 'smooth',
    block: 'center',
});

// стара форма — миттєво, ривком
// window.scrollTo(0, 0);
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід