tor-browser

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

fractional-scroll-area.html (1686B)


      1 <!DOCTYPE html>
      2 <html class="reftest-wait">
      3 <meta charset="utf-8">
      4 <title>Fractional scroll area position / size</title>
      5 
      6 <style>
      7 
      8 body {
      9  margin: 0;
     10 }
     11 
     12 #scrollbox {
     13  width: 200px;
     14  overflow: hidden;
     15  background: red;
     16 }
     17 
     18 #scrolled-content {
     19  background: lime;
     20  box-sizing: border-box;
     21  border: solid black;
     22  border-width: 1px 0;
     23 }
     24 
     25 </style>
     26 
     27 <div id="scrollbox">
     28  <div id="scrolled-content"></div>
     29 </div>
     30 
     31 <script>
     32 
     33 function getFloatQueryParams(defaultValues) {
     34  let result = Object.assign({}, defaultValues);
     35  for (let chunk of location.search.substr(1).split("&")) {
     36    let parts = chunk.split("=");
     37    result[parts[0]] = parseFloat(parts[1]);
     38  }
     39  return result;
     40 }
     41 
     42 let params = getFloatQueryParams({
     43  top: 0,
     44  outerBottom: 100,
     45  innerBottom: 100,
     46  borderTop: 0,
     47  borderBottom: 0,
     48  scrollBefore: 0,
     49  scrollAfter: undefined,
     50  offsetAfter: undefined,
     51 });
     52 
     53 let scrollArea = document.getElementById("scrollbox");
     54 let scrolledContent = document.getElementById("scrolled-content");
     55 
     56 scrollArea.style.marginTop = params.top + "px";
     57 scrollArea.style.height = (params.outerBottom - params.top) + "px";
     58 scrolledContent.style.height =  (params.innerBottom - params.top) + "px";
     59 
     60 scrollArea.scrollTop = 1;
     61 scrollArea.scrollTop = 2;
     62 scrollArea.scrollTop = params.scrollBefore;
     63 
     64 window.addEventListener("MozReftestInvalidate", function () {
     65  if (params.scrollAfter !== undefined) {
     66    scrollArea.scrollTop = params.scrollAfter;
     67  }
     68  if (params.offsetAfter !== undefined) {
     69    document.body.style.marginTop = params.offsetAfter + "px";
     70  }
     71  document.documentElement.className = "";
     72 });
     73 
     74 </script>