tor-browser

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

registered-var-to-registered-animating.html (1968B)


      1 <!DOCTYPE html>
      2 <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <style>
      6 #target {
      7  --static: 100;
      8 }
      9 </style>
     10 <div id="target"></div>
     11 <script>
     12 setup(() => {
     13  for (let name of ['--test', '--static', '--animated']) {
     14    CSS.registerProperty({
     15      name,
     16      syntax: '<number>',
     17      initialValue: '0',
     18      inherits: false,
     19    });
     20  }
     21 });
     22 
     23 test(() => {
     24  // --test is animating from a static value to an animated value resulting in it changing quadratically.
     25  let animation = target.animate({'--test': ['var(--static)', 'var(--animated)']}, 100);
     26  let referencedAnimation = target.animate({'--animated': ['200', '300']}, 100);
     27 
     28  referencedAnimation.currentTime = 25;
     29  {
     30    animation.currentTime = 25;
     31    // lerp(100, lerp(200, 300, 25%), 25%) == 0.75*100 + 0.25*(0.75*200 + 0.25*300) == 131.25
     32    assert_equals(getComputedStyle(target).getPropertyValue('--test'), '131.25', 'target at 25%, to at 25%');
     33 
     34    animation.currentTime = 75;
     35    // lerp(100, lerp(200, 300, 25%), 75%) == 0.25*100 + 0.75*(0.75*200 + 0.25*300) == 193.75
     36    assert_equals(getComputedStyle(target).getPropertyValue('--test'), '193.75', 'target at 75%, to at 25%');
     37  }
     38 
     39  referencedAnimation.currentTime = 75;
     40  {
     41    animation.currentTime = 25;
     42    // lerp(100, lerp(200, 300, 75%), 25%) == 0.75*100 + 0.25*(0.25*200 + 0.75*300) == 143.75
     43    assert_equals(getComputedStyle(target).getPropertyValue('--test'), '143.75', 'target at 25%, to at 25%');
     44 
     45    animation.currentTime = 75;
     46    // lerp(100, lerp(200, 300, 75%), 75%) == 0.25*100 + 0.75*(0.25*200 + 0.75*300) == 231.25
     47    assert_equals(getComputedStyle(target).getPropertyValue('--test'), '231.25', 'target at 75%, to at 25%');
     48  }
     49 }, 'Animated registered custom properties can var() reference other animated registered custom properties across separate Animations.');
     50 </script>