aboutsummaryrefslogtreecommitdiffstats
path: root/components/script_bindings/webidls/IntersectionObserver.webidl
blob: a5becc147fa1150dbf078192c546bc637e2af03f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */

// https://w3c.github.io/IntersectionObserver/#intersection-observer-interface

callback IntersectionObserverCallback =
  undefined (sequence<IntersectionObserverEntry> entries, IntersectionObserver observer);

dictionary IntersectionObserverInit {
  (Element or Document)?  root = null;
  DOMString rootMargin;
  DOMString scrollMargin;
  (double or sequence<double>) threshold;
  long delay;
  boolean trackVisibility = false;
};

[Pref="dom_intersection_observer_enabled", Exposed=(Window)]
interface IntersectionObserver {
  [Throws] constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options = {});
  readonly attribute (Element or Document)? root;
  readonly attribute DOMString rootMargin;
  readonly attribute DOMString scrollMargin;
  readonly attribute /* FrozenArray<double> */ any thresholds;
  readonly attribute long delay;
  readonly attribute boolean trackVisibility;
  undefined observe(Element target);
  undefined unobserve(Element target);
  undefined disconnect();
  sequence<IntersectionObserverEntry> takeRecords();
};