tor-browser

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

scroll-marker-scroll-container.html (2439B)


      1 <!doctype html>
      2 <meta charset="utf-8">
      3 <title>CSS Test: ::scroll-marker on scroll 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  #marker-scroller {
     17    border: 2px solid gray;
     18    width: 600px;
     19    height: 300px;
     20    overflow: auto;
     21    scroll-snap-type: x mandatory;
     22    position: relative;
     23    scroll-marker-group: before;
     24    white-space: nowrap;
     25  }
     26 
     27  #marker-scroller > div {
     28    scroll-snap-align: start;
     29    box-sizing: border-box;
     30    border-radius: 5px;
     31    background: lightgray;
     32    border: 1px solid black;
     33    display: inline-block;
     34    width: 500px;
     35    height: 100%;
     36    scroll-padding: 16px;
     37    overflow: auto;
     38  }
     39 
     40  .content {
     41    height: 1000px;
     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="marker-scroller">
     63  <div><div class="content">1</div></div>
     64  <div id="target"><div class="content">2</div></div>
     65  <div><div class="content">3</div></div>
     66 </div>
     67 <script>
     68  promise_test(async t => {
     69    const target = document.querySelector('#target');
     70    const scroller = document.querySelector('#marker-scroller');
     71    const innerScroller = document.querySelector('#target');
     72    innerScroller.scrollTop = 100;
     73    const scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller);
     74    actions_promise = new test_driver.Actions()
     75      .pointerMove(150, 50)
     76      .pointerDown()
     77      .pointerUp()
     78      .send();
     79    await actions_promise;
     80    await scrollEndPromise;
     81    assert_equals(scroller.scrollLeft, target.offsetLeft, "::scroll-marker activation scrolls to target");
     82    assert_equals(innerScroller.scrollTop, 100, "::scroll-marker activation doesn't scroll marker's inner scroll container");
     83  });
     84 </script>