Конспект «Прокрутка и операторы»

Окно браузера и прокрутка

Окно (или вкладка) браузера в JavaScript обозначается словом window.

Обработчик событий onscroll

Чтобы отследить прокрутку, используем обработчик событий onscroll. Он срабатывает каждый раз, когда страницу прокручивают, даже если её сдвинули всего на один пиксель.

window.onscroll = function () {
  console.log('Страница прокручена');
}

Свойство pageYOffset

Свойство pageYOffset окна браузера содержит количество пикселей, на которое пользователь прокрутил страницу по вертикали:

// Если мы на самом верху страницы
console.log(window.pageYOffset); // Выведет: 0

// Прокрутим страницу на 200px
console.log(window.pageYOffset); // Выведет: 200
Свойство window.pageYOffset

Величина горизонтальной прокрутки хранится в свойстве pageXOffset.

Метод scrollTo

Чтобы прокрутить страницу, используем метод scrollTo:

window.scrollTo(координата-Х, координата-Y);

Координата Х указывает, куда нужно прокрутить страницу по горизонтали, а координата Y — куда нужно прокрутить страницу по вертикали. Когда браузер выполнит инструкцию, указанная точка окажется в левом верхнем углу окна. Координаты задаются в пикселях, но указывать единицы измерения не нужно:

// Прокрутит страницу на 100px вправо и на 50px вниз
window.scrollTo(100, 50);
Как работает window.scrollTo(100, 50)

Если прокрутить страницу до указанных координат не получается, браузер прокрутит её так далеко, как сможет, но увеличивать страницу не будет. Если страница помещается в окно целиком и полосы прокрутки нет, то браузер проигнорирует эту инструкцию.

Обработчик событий onchange

Обработчик событий onchange срабатывает, когда пользователь выбирает новое значение из выпадающего списка.

// Находим выпадающий список
let select = document.querySelector('select');

// Добавляем обработчик событий
select.onchange = function () {

  // Выводим в консоль новое значение
  console.log(select.value);
};

Обработчик событий onchange можно использовать с разными элементами. Например, он срабатывает, когда пользователь переключает чекбокс или радиокнопки.

Оператор строгого равенства

Чтобы проверить, равны ли два значения, используем оператор строгого равенства. Он обозначается тремя знаками равно:

'a' === 'a'; // Результат: true
'a' === 'b'; // Результат: false

Оператор строгого равенства сравнивает два значения и возвращает true, если они равны, и false, если они не равны. Значения, которые проверяет оператор, называют операндами.

Оператор строгого неравенства

Оператор строгого неравенства работает противоположно оператору строгого равенства. Он сравнивает два значения и возвращает false, если значения равны, и true, если они не равны.

Оператор строгого неравенства обозначается восклицательным знаком и двумя знаками равно:

'a' !== 'a'; // Результат: false
'a' !== 'b'; // Результат: true

В JavaScript также есть оператор нестрогого равенства == и оператор нестрогого неравенства !=. О них мы поговорим в одной из следующих частей.

Оператор логическое И

Чтобы объединить две части условия, используем логическое И. Оно обозначается двойным амперсандом — &&.

if (article.dataset.category !== filter.value && filter.value !== 'all') {
  article.classList.add('hidden');
}

Логическое И возвращает true, только если обе части условия возвращают true. Если хотя бы одна из частей вернёт false, то условие целиком также будет считаться ложным:

true && true;   // Результат: true
true && false;  // Результат: false
false && true;  // Результат: false
false && false; // Результат: false

Оператор логическое ИЛИ

Логическое ИЛИ обозначается двумя вертикальными чертами и возвращает true, если хотя бы один из операндов возвращает true:

true || true;   // Результат: true
true || false;  // Результат: true
false || true;  // Результат: true
false || false; // Результат: false
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Прокрутка и операторы» тренажёра «Знакомство с JavaScript» можно после регистрации и оформления подписки.