tor-browser

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

scroll-marker-group-keeps-active-in-view.html (3242B)


      1 <!DOCTYPE html>
      2 <html class="reftest-wait">
      3  <head>
      4    <title>CSS Test: scroll tracking for ::scroll-markers when scroll-marker-group is scrollable </title>
      5    <link rel="help" href="https://drafts.csswg.org/css-overflow-5/#active-scroll-marker">
      6    <link rel="match" href="scroll-marker-group-keeps-active-in-view-ref.html">
      7    <script src="/css/css-transitions/support/helper.js"></script>
      8    <script src="/dom/events/scrolling/scroll_support.js"></script>
      9    <script src="/common/reftest-wait.js"></script>
     10  </head>
     11  <body>
     12    <style>
     13    .scroller {
     14      height: 500px;
     15      width: 80vw;
     16      border: solid 1px;
     17      overflow-x: scroll;
     18      justify-self: center;
     19      white-space: nowrap;
     20      padding-top: 50px;
     21      scroll-snap-type: x mandatory;
     22      scroll-marker-group: after;
     23      &::scroll-marker-group {
     24        border: solid 1px black;
     25        height: 40px;
     26        width: 500px;
     27        display: grid;
     28        grid-auto-flow: column;
     29        justify-self: center;
     30        overflow-x: scroll;
     31        white-space: nowrap;
     32        scroll-behavior: smooth;
     33      }
     34      counter-set: markeridx -1;
     35    }
     36 
     37    .box {
     38      height: 400px;
     39      width: 40%;
     40      border: 1px solid;
     41      display: inline-block;
     42      margin-left: 50px;
     43      margin-right: 50px;
     44      scroll-snap-align: center;
     45      align-content: center;
     46      text-align: center;
     47      &::scroll-marker {
     48        content: counter(markeridx);
     49        counter-increment: markeridx;
     50        width: 20px;
     51        height: 20px;
     52        background-color: red;
     53        margin-left: 100px;
     54      }
     55      &::scroll-marker:target-current {
     56        background-color: green;
     57      }
     58    }
     59 
     60    </style>
     61    <div class="scroller" id="carousel">
     62      <div class="box" id="box0"><p>0</p></div>
     63      <div class="box" id="box1"><p>1</p></div>
     64      <div class="box" id="box2"><p>2</p></div>
     65      <div class="box" id="box3"><p>3</p></div>
     66      <div class="box" id="box4"><p>4</p></div>
     67      <div class="box" id="box5"><p>5</p></div>
     68      <div class="box" id="box6"><p>6</p></div>
     69      <div class="box" id="box7"><p>7</p></div>
     70      <div class="box" id="box8"><p>8</p></div>
     71      <div class="box" id="box9"><p>9</p></div>
     72      <div class="box" id="box10"><p>10</p></div>
     73      <div class="box" id="box11"><p>11</p></div>
     74      <div class="box" id="box12"><p>12</p></div>
     75      <div class="box" id="box13"><p>13</p></div>
     76      <div class="box" id="box14"><p>14</p></div>
     77      <div class="box" id="box15"><p>15</p></div>
     78    </div>
     79    <script>
     80      // carousel.scrollLeft = carousel.scrollWidth;
     81      async function runTest() {
     82        // Wait for the (instant) scroll of the carousel itself.
     83        let scrollend_promise =
     84          waitForScrollEndFallbackToDelayWithoutScrollEvent(carousel);
     85        // Scroll to the max horizontal offset.
     86        carousel.scrollLeft = carousel.scrollWidth;
     87        await scrollend_promise;
     88        // Wait for the (smooth) scroll of the scroll-marker-group pseudo.
     89        scrollend_promise =
     90          waitForScrollEndFallbackToDelayWithoutScrollEvent(carousel);
     91        await scrollend_promise;
     92        takeScreenshot();
     93      }
     94      waitForCompositorReady().then(runTest);
     95    </script>
     96  </body>
     97 </html>