tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

scroll-marker-activation-scroll.html (2387B)


      1 <!doctype html>
      2 <meta charset="utf-8">
      3 <title>CSS Test: ::scroll-marker only scrolls associated scrolling container</title>
      4 <link rel="help" href="https://drafts.csswg.org/css-overflow-5/#scroll-marker-activation">
      5 <script src="/dom/events/scrolling/scroll_support.js"></script>
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="/resources/testdriver.js"></script>
      9 <script src="/resources/testdriver-actions.js"></script>
     10 <script src="/resources/testdriver-vendor.js"></script>
     11 <style>
     12  body {
     13    margin: 0;
     14  }
     15 
     16  #ancestor-scroller {
     17    border: 2px solid gray;
     18    width: 600px;
     19    height: 150px;
     20    overflow: auto;
     21    position: relative;
     22  }
     23 
     24  #marker-scroller {
     25    height: 300px;
     26    overflow: auto;
     27    scroll-snap-type: x mandatory;
     28    position: relative;
     29    scroll-marker-group: before;
     30    white-space: nowrap;
     31  }
     32 
     33  #marker-scroller div {
     34    scroll-snap-align: start;
     35    box-sizing: border-box;
     36    border-radius: 5px;
     37    background: lightgray;
     38    border: 1px solid black;
     39    display: inline-block;
     40    width: 500px;
     41    height: 100%;
     42  }
     43 
     44  #marker-scroller::scroll-marker-group {
     45    display: flex;
     46    height: 100px;
     47  }
     48 
     49  #marker-scroller div::scroll-marker {
     50    content: "";
     51    width: 100px;
     52    height: 100px;
     53    box-sizing: border-box;
     54    border-radius: 5px;
     55    border: 1px solid black;
     56    display: inline-block;
     57  }
     58  #marker-scroller div::scroll-marker:target-current {
     59    background: blue;
     60  }
     61 </style>
     62 <div id="ancestor-scroller">
     63  <div id="marker-scroller">
     64    <div>1</div>
     65    <div id="target">2</div>
     66    <div>3</div>
     67  </div>
     68 </div>
     69 <script>
     70  promise_test(async t => {
     71    const target = document.querySelector('#target');
     72    const ancestorScroller = document.querySelector('#ancestor-scroller');
     73    const scroller = document.querySelector('#marker-scroller');
     74    const scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller);
     75    actions_promise = new test_driver.Actions()
     76      .pointerMove(150, 50)
     77      .pointerDown()
     78      .pointerUp()
     79      .send();
     80    await actions_promise;
     81    await scrollEndPromise;
     82    assert_equals(scroller.scrollLeft, target.offsetLeft, "::scroll-marker activation scrolls to target");
     83    assert_equals(ancestorScroller.scrollTop, 0, "::scroll-marker activation doesn't scroll ancestors");
     84  });
     85 </script>