IntersectionObserver

API that can be used to understand the visibility and position of DOM elements relative to a containing element or to the top-level viewport. The position is delivered asynchronously and is useful for understanding the visibility of elements and implementing pre-loading and deferred loading of DOM content.

Spec https://www.w3.org/TR/intersection-observer/
Status W3C Working Draft
IE Edge Firefox Chrome Safari Opera
      98 (4)    
    95 97 (4)    
    94 96 (4) TP  
11 95 (4) 93 95 (4) 15 80 (4)
10 94 (4) 92 94 (4) 14.1 79 (4)
9 93 (4) 91 93 (4) 14 78 (4)
8 92 (4) 90 92 (4) 13.1 77 (4)
Show all
7 91 (4) 89 91 (4) 13 76 (4)
6 90 (4) 88 90 (4) 12.1 75 (4)
5.5 89 (4) 87 89 (4) 12 74 (4)
  88 (4) 86 88 (4) 11.1 73 (4)
  87 (4) 85 87 (4) 11 72 (4)
  86 (4) 84 86 (4) 10.1 71 (4)
  85 (4) 83 85 (4) 10 70 (4)
  84 (4) 82 84 (4) 9.1 69 (4)
  83 (4) 81 83 (4) 9 68 (4)
  81 (4) 80 81 (4) 8 67 (4)
  80 (4) 79 80 (4) 7.1 66 (4)
  79 (4) 78 79 (4) 7 65 (4)
  18 77 78 (4) 6.1 64 (4)
  17 76 77 (4) 6 63
  16 75 76 (4) 5.1 62
  15 (3) 74 75 (4) 5 60
  14 73 74 (4) 4 58
  13 72 73 (4) 3.2 57
  12 71 72 (4) 3.1 56
    70 71 (4)   55
    69 70 (4)   54
    68 69 (4)   53
    67 68 (4)   52
    66 67 (4)   51
    65 66 (4)   50
    64 65 (4)   49
    63 64   48
    62 63   47
    61 62   46
    60 61   45
    59 60   44 (3)
    58 59   43 (3)
    57 58   42 (3)
    56 57 (3)   41 (3)
    55 56 (3)   40 (3)
    54 (1) 55 (3)   39 (3)
    53 (1) 54 (3)   38 (3)
    52 (1) 53 (3)   37
    51 52 (3)   36
    50 51 (3)   35
    49 50   34
    48 49   33
    47 48   32
    46 47   31
    45 46   30
    44 45   29
    43 44   28
    42 43   27
    41 42   26
    40 41   25
    39 40   24
    38 39   23
    37 38   22
    36 37   21
    35 36   20
    34 35   19
    33 34   18
    32 33   17
    31 32   16
    30 31   15
    29 30   12.1
    28 29   12
    27 28   11.6
    26 27   11.5
    25 26   11.1
    24 25   11
    23 24   10.6
    22 23   10.5
    21 22   10.0-10.1
    20 21   9.5-9.6
    19 20   9
    18 19    
    17 18    
    16 17    
    15 16    
    14 15    
    13 14    
    12 13    
    11 12    
    10 11    
    9 10    
    8 9    
    7 8    
    6 7    
    5 6    
    4 5    
    3.6 4    
    3.5      
    3      
    2      
Safari on iOS Opera Mini Android Browser Blackberry Browser Opera Mobile Android Chrome Android Firefox IE Mobile Android UC Browser Samsung Internet QQ Browser Baidu Browser KaiOS Browser
15 all 94 (4) 10 64 (4) 94 92 11 12.12 (3) 15.0 10.4 (4) 7.12 2.5
14.5-14.8   4.4.3-4.4.4 7 12.1     10   14.0      
14.0-14.4   4.4   12         13.0      
13.4-13.7   4.2-4.3   11.5         12.0      
Show all
13.3   4.1   11.1         11.1-11.2      
13.2   4   11         10.1      
13.0-13.1   3   10         9.2      
12.2-12.5   2.3             8.2      
12.0-12.1   2.2             7.2-7.4      
11.3-11.4   2.1             6.2-6.4 (3)      
11.0-11.2                 5.0-5.4 (3)      
10.3                 4      
10.0-10.2                        
9.3                        
9.0-9.2                        
8.1-8.4                        
8                        
7.0-7.1                        
6.0-6.1                        
5.0-5.1                        
4.2-4.3                        
4.0-4.1                        
3.2                        

Notes

  1. Enabled in Firefox by setting the about:config preference dom.IntersectionObserver.enabled to true

  2. "Preliminary" support as feature is still in development

  3. isIntersecting property of IntersectionObserverEntry was not implemented, returning undefined

  4. IntersectionObserver does not trigger its callback in a Chrome background tab

Bugs

  • Chromium: In a background tab, IntersectionObserver does not trigger its callback.

Resources

Data by caniuse.com
Licensed under the Creative Commons Attribution License v4.0.
https://caniuse.com/intersectionobserver