jQuery предоставляет мощный и удобный интерфейс для работы с событиями, связанными с документом и окном браузера. Эти события позволяют реагировать на изменения DOM, загрузку страницы, изменение размеров окна и прокрутку. Правильное использование этих событий критично для эффективной работы с динамическим контентом и улучшения пользовательского опыта.
readyСобытие ready срабатывает, когда DOM полностью загружен
и готов к взаимодействию, но до полной загрузки всех ресурсов страницы
(изображений, стилей и фреймов). В jQuery это событие обрабатывается с
помощью метода $(document).ready():
$(document).ready(function() {
console.log("DOM полностью загружен");
});
Альтернативная, более короткая форма записи:
$(function() {
console.log("DOM готов к работе");
});
Особенности:
loadСобытие load срабатывает, когда полностью загружены все
элементы страницы, включая изображения, стили, фреймы и другие внешние
ресурсы. В jQuery его используют так:
$(window).on("load", function() {
console.log("Все ресурсы страницы загружены");
});
Применение:
Отличие от ready: ready
срабатывает быстрее, так как не ждёт загрузки изображений и фреймов.
resizeСобытие resize позволяет отслеживать изменение размеров
окна браузера. Оно полезно для реализации адаптивного дизайна,
динамической подстройки элементов и управления макетом страницы:
$(window).on("resize", function() {
console.log("Размер окна изменился. Новая ширина:", $(window).width());
});
Рекомендации по использованию:
width() и
height() для динамического расчёта размеров элементов.scrollСобытие scroll срабатывает при прокрутке страницы. Оно
применяется для реализации «липких» элементов, ленивой загрузки
контента, анимаций при скролле и отслеживания позиции пользователя на
странице:
$(window).on("scroll", function() {
var scrollTop = $(window).scrollTop();
console.log("Текущая прокрутка:", scrollTop);
});
Важные моменты:
throttle..offset() и
.position() позволяет вычислять положение элементов
относительно окна.DOMSubtreeModifiedХотя современные стандарты рекомендуют использовать
MutationObserver, jQuery позволяет работать с
изменениями DOM через события, такие как
DOMSubtreeModified:
$(document).on("DOMSubtreeModified", function() {
console.log("DOM изменён");
});
Особенности:
one() для однократного срабатыванияДля всех событий документа и окна можно использовать метод
one(), чтобы обработчик сработал только один раз:
$(window).one("load", function() {
console.log("Этот код выполнится только один раз при полной загрузке страницы");
});
Преимущества:
resize или scroll.jQuery предоставляет универсальные методы для привязки и удаления событий:
on(event, handler) — привязка обработчика.off(event, handler) — удаление обработчика.trigger(event) — программное вызов события.Пример:
function onScrollHandler() {
console.log("Прокрутка зафиксирована");
}
$(window).on("scroll", onScrollHandler);
// Позже можно удалить обработчик
$(window).off("scroll", onScrollHandler);
Это позволяет динамически подключать и отключать обработчики в зависимости от состояния приложения или интерфейса.
Часто события используются вместе для реализации сложной логики интерфейса:
$(document).ready(function() {
$(window).on("resize scroll", function() {
console.log("Размер или позиция окна изменились");
});
});
Такая практика облегчает управление состояниями интерфейса при динамическом изменении контента и размеров окна.
События документа и окна в jQuery образуют фундамент для построения интерактивных и отзывчивых веб-страниц. Их грамотное использование обеспечивает контроль над жизненным циклом страницы, динамическими изменениями DOM и поведением интерфейса при взаимодействии пользователя с окном браузера.