Spec-Zone.ru › jQuery

событие прокрутки

Привяжите обработчик события "прокрутка" к элементу или сгенерируйте это событие на элементе.

Содержание:

  • .on( "scroll" [, eventData ], handler )
    • .on( "scroll" [, eventData ], handler )
  • .trigger( "scroll" )
    • .trigger( "scroll" )

.on( "scroll" [, eventData ], handler )Возвращает: jQuery

Описание: Привязывает обработчик события "прокрутка".

  • версия добавлена: 1.7.on( "scroll" [, eventData ], handler )

    • "scroll"
      Тип: строка
      Строка "scroll".
    • eventData
      Тип: Любое
      Объект, содержащий данные, которые будут переданы обработчику события.
    • handler
      Тип: Функция( Событие eventObject )
      Функция, которая выполняется каждый раз при срабатывании события.

На этой странице описано событие scroll. Для устаревшего метода .scroll(), см. .scroll().

Событие scroll отправляется элементу, когда пользователь прокручивает его содержимое. Оно применяется к объектам window, а также к прокручиваемым фреймам и элементам с свойством CSS overflow установленным в значение scroll (или auto, если высота или ширина элемента явно меньше высоты или ширины его содержимого).

Например, рассмотрим HTML:

<div id="target" style="overflow: scroll; width: 200px; height: 100px;">
  Lorem ipsum dolor sit amet, consectetur adipisicing elit,
  sed do eiusmod tempor incididunt ut labore et dolore magna
  aliqua. Ut enim ad minim veniam, quis nostrud exercitation
  ullamco laboris nisi ut aliquip ex ea commodo consequat.
  Duis aute irure dolor in reprehenderit in voluptate velit
  esse cillum dolore eu fugiat nulla pariatur. Excepteur
  sint occaecat cupidatat non proident, sunt in culpa qui
  officia deserunt mollit anim id est laborum.
</div>
<div id="other">
  Trigger the handler
</div>
<div id="log"></div>

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

Рисунок 1 - Иллюстрация рендеринга HTML

Обработчик события scroll можно привязать к этому элементу:

$( "#target" ).on( "scroll", function() {
  $( "#log" ).append( "<div>Handler for `scroll` called.</div>" );
} );

Теперь, когда пользователь прокручивает текст вверх или вниз, одно или несколько сообщений добавляются в <div id="log"></div>:

Обработчик для `scroll` вызван.

Чтобы вручную вызвать событие, используйте .trigger( "scroll" ):

$( "#other" ).on( "click", function() {
  $( "#target" ).trigger( "scroll" );
} );

После выполнения этого кода щелчки по Вызвать обработчик также будут добавлять сообщение.

Событие scroll отправляется всякий раз, когда меняется положение прокрутки элемента, независимо от причины. Это событие может быть вызвано щелчком мыши или перетаскиванием полосы прокрутки, перетаскиванием внутри элемента, нажатием клавиш со стрелками или прокруткой колесиком мыши.

Пример:

Чтобы выполнить действие при прокрутке страницы:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>on demo</title>
  <style>
  div {
    color: blue;
  }
  p {
    color: green;
  }
  span {
    color: red;
    display: none;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div>Try scrolling the iframe.</div>
<p>Paragraph - <span>Scroll happened!</span></p>
 
<script>
$( "p" ).clone().appendTo( document.body );
$( "p" ).clone().appendTo( document.body );
$( "p" ).clone().appendTo( document.body );
$( window ).on( "scroll", function() {
  $( "span" ).css( "display", "inline" ).fadeOut( "slow" );
} );
</script>
 
</body>
</html>

Демо:

.trigger( "scroll" )Возвращает: jQuery

Описание: Вызывает событие "прокрутка" на элементе.

  • версия добавлена: 1.0.trigger( "scroll" )

    • "scroll"
      Тип: строка
      Строка "scroll".

См. описание для .on( "scroll", ... ).

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/scroll

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API