@@ -109,24 +109,36 @@ alert('Текущая прокрутка слева: ' + window.pageXOffset);
109109 <button onclick="window.scrollTo(0,0)">window.scrollTo(0,0)</button>
110110 ```
111111
112- Эти методы одинаково работают для всех браузеров.
112+ В обоих методах вместо координат также может использоваться объект `options`, как аргумент:
113113
114- scrollTo/scrollBy могут иметь options, как аргумент:
115- element.scrollTo(options).
114+ ```js
115+ window.scrollTo(options);
116+ window.scrollBy(options);
117+ ```
116118
117- options - объект с тремя свойствами :
119+ ` options` поддерживает три свойства :
118120
119121```js
120- element .scrollTo({`
122+ window .scrollTo({
121123 top: 100,
122- left: 100 ,
124+ left: 0 ,
123125 behavior: "smooth"
124126});
125127```
126128
127- где behavior: "smooth" означает плавную прокрутку. Принимает значения "auto" или "smooth". По умолчанию "auto" - то есть, без плавной прокрутки.
129+ - `top` -- то же самое, что `y`/`pageY`
130+ - `left` -- то же самое, что `x`/`pageX`
131+ - `behavior` -- определяет, каким образом будет прокручиваться страница:
132+
133+ - `"smooth"` -- плавно (не поддерживается в Safari)
134+ - `"instant"` -- мгновенно
135+ - `"auto"` -- определяется браузером (зависит от CSS-свойства [scroll-behavior](https://developer.mozilla.org/ru/docs/Web/CSS/scroll-behavior))
136+
137+ ```online
138+ Демонстрация плавной прокрутки страницы (в Safari прокрутка будет мгновенной):
128139
129- Не поддерживается только в IE.
140+ <button onclick="window.scrollTo({ top: 500, left: 0, behavior: "smooth" })">window.scrollTo({ top: 500, left: 0, behavior: "smooth" })</button>
141+ ```
130142
131143## scrollIntoView
132144
@@ -148,22 +160,22 @@ element.scrollTo({`
148160<button onclick="this.scrollIntoView(false)">this.scrollIntoView(false)</button>
149161```
150162
151- scrollIntoView также может иметь options, как аргумент:
152- element.scrollIntoView(options).
163+ Как и `scrollTo`/`scrollBy`, `scrollIntoView` также принимает объект `options` как аргумент (он немного отличается):
153164
154- options - объект с тремя свойствами:
165+ ```js
166+ this.scrollIntoView(options).
167+ ```
155168
156- - behavior - Анимация прокрутки. Принимает значения "auto" или "smooth". По умолчанию "auto".
157- - block - Вертикальное выравнивание. Одно из значений: "start", "center", "end" или "nearest". По умолчанию "start".
158- - inline - Горизонтальное выравнивание. Одно из значений: "start", "center", "end" или "nearest". По умолчанию "nearest".
169+ `options` поддерживает три свойства:
159170
160171```js
161- elem.scrollIntoView({block: "center", behavior: "smooth"});
172+ this.scrollIntoView({
173+ behavior: "smooth",
174+ block: "end",
175+ inline: "nearest"
176+ });
162177```
163178
164- behavior: "smooth" не поддерживается в IE и Safari, но начиная с версии 16.0 в Safari появилась поддержка behavior:
165- "smooth".
166-
167179## Запретить прокрутку
168180
169181Иногда нам нужно сделать документ "непрокручиваемым". Например, при показе большого диалогового окна над документом – чтобы посетитель мог прокручивать это окно, но не документ.
0 commit comments