tor-browser

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

transform-interpolation-003.html (3888B)


      1 <!DOCTYPE html>
      2 <meta charset="UTF-8">
      3 <title>transform interpolation</title>
      4 <link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-property">
      5 <meta name="assert" content="transform supports animation as a transform list">
      6 
      7 <script src="/resources/testharness.js"></script>
      8 <script src="/resources/testharnessreport.js"></script>
      9 <script src="/css/support/interpolation-testcommon.js"></script>
     10 
     11 <style>
     12 .target {
     13  color: white;
     14  width: 100px;
     15  height: 100px;
     16  background-color: black;
     17  display: inline-block;
     18  overflow: hidden;
     19 }
     20 .expected {
     21  background-color: green;
     22 }
     23 .target > div {
     24  width: 10px;
     25  height: 10px;
     26  display: inline-block;
     27  background: orange;
     28  margin: 1px;
     29 }
     30 .test {
     31  overflow: hidden;
     32 }
     33 </style>
     34 
     35 <body>
     36 <template id="target-template">
     37 <div></div>
     38 </template>
     39 </body>
     40 
     41 <script>
     42 test_interpolation({
     43  property: 'transform',
     44  from: 'skewX(10rad) scaleZ(1)',
     45  to: 'skewX(20rad) scaleZ(2)'
     46 }, [
     47  {at: -1, expect: 'skewX(0rad) scaleZ(0)'},
     48  {at: 0, expect: 'skewX(10rad) scaleZ(1)'},
     49  {at: 0.25, expect: 'skewX(12.5rad) scaleZ(1.25)'},
     50  {at: 0.75, expect: 'skewX(17.5rad) scaleZ(1.75)'},
     51  {at: 1, expect: 'skewX(20rad) scaleZ(2)'},
     52  {at: 2, expect: 'skewX(30rad) scaleZ(3)'},
     53 ]);
     54 test_interpolation({
     55  property: 'transform',
     56  from: 'skewX(10rad)',
     57  to: 'skewX(20rad) scaleZ(2)'
     58 }, [
     59  {at: -1, expect: 'skewX(0rad) scaleZ(0)'},
     60  {at: 0, expect: 'skewX(10rad) scaleZ(1)'},
     61  {at: 0.25, expect: 'skewX(12.5rad) scaleZ(1.25)'},
     62  {at: 0.75, expect: 'skewX(17.5rad) scaleZ(1.75)'},
     63  {at: 1, expect: 'skewX(20rad) scaleZ(2)'},
     64  {at: 2, expect: 'skewX(30rad) scaleZ(3)'},
     65 ]);
     66 test_interpolation({
     67  property: 'transform',
     68  from: 'scaleZ(3) perspective(400px)',
     69  to: 'scaleZ(4) skewX(1rad) perspective(500px)'
     70 }, [
     71  {at: -1, expect: 'scaleZ(2) matrix3d(1, 0, 0, 0, -1.55741, 1, 0, 0, 0, 0, 1, -0.003, 0, 0, 0, 1)'},
     72  {at: 0, expect: 'scaleZ(3) matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, -0.0025, 0, 0, 0, 1)'},
     73  {at: 0.25, expect: 'scaleZ(3.25) matrix3d(1, 0, 0, 0, 0.389352, 1, 0, 0, 0, 0, 1, -0.002375, 0, 0, 0, 1)'},
     74  {at: 0.75, expect: 'scaleZ(3.75) matrix3d(1, 0, 0, 0, 1.16806, 1, 0, 0, 0, 0, 1, -0.002125, 0, 0, 0, 1)'},
     75  {at: 1, expect: 'scaleZ(4) matrix3d(1, 0, 0, 0, 1.55741, 1, 0, 0, 0, 0, 1, -0.002, 0, 0, 0, 1)'},
     76  {at: 2, expect: 'scaleZ(5) matrix3d(1, 0, 0, 0, 3.11482, 1, 0, 0, 0, 0, 1, -0.0015, 0, 0, 0, 1)'},
     77 ]);
     78 test_interpolation({
     79  property: 'transform',
     80  from: 'translateY(70%) scaleZ(1)',
     81  to: 'translateY(90%) scaleZ(2)'
     82 }, [
     83  {at: -1, expect: 'translateY(50%) scaleZ(0)'},
     84  {at: 0, expect: 'translateY(70%) scaleZ(1)'},
     85  {at: 0.25, expect: 'translateY(75%) scaleZ(1.25)'},
     86  {at: 0.75, expect: 'translateY(85%) scaleZ(1.75)'},
     87  {at: 1, expect: 'translateY(90%) scaleZ(2)'},
     88  {at: 2, expect: 'translateY(110%) scaleZ(3)'},
     89 ]);
     90 test_interpolation({
     91  property: 'transform',
     92  from: 'translateY(70%)',
     93  to: 'translateY(90%) scaleZ(2)'
     94 }, [
     95  {at: -1, expect: 'translateY(50%) scaleZ(0)'},
     96  {at: 0, expect: 'translateY(70%)'},
     97  {at: 0.25, expect: 'translateY(75%) scaleZ(1.25)'},
     98  {at: 0.75, expect: 'translateY(85%) scaleZ(1.75)'},
     99  {at: 1, expect: 'translateY(90%) scaleZ(2)'},
    100  {at: 2, expect: 'translateY(110%) scaleZ(3)'},
    101 ]);
    102 
    103 // Skew
    104 test_interpolation({
    105  property: 'transform',
    106  from: 'skewX(10rad)',
    107  to: 'skewX(20rad)'
    108 }, [
    109  {at: -1, expect: 'skewX(0rad)'},
    110  {at: 0, expect: 'skewX(10rad)'},
    111  {at: 0.25, expect: 'skewX(12.5rad)'},
    112  {at: 0.75, expect: 'skewX(17.5rad)'},
    113  {at: 1, expect: 'skewX(20rad)'},
    114  {at: 2, expect: 'skewX(30rad)'},
    115 ]);
    116 test_interpolation({
    117  property: 'transform',
    118  from: 'skewY(10rad)',
    119  to: 'skewY(20rad)'
    120 }, [
    121  {at: -1, expect: 'skewY(0rad)'},
    122  {at: 0, expect: 'skewY(10rad)'},
    123  {at: 0.25, expect: 'skewY(12.5rad)'},
    124  {at: 0.75, expect: 'skewY(17.5rad)'},
    125  {at: 1, expect: 'skewY(20rad)'},
    126  {at: 2, expect: 'skewY(30rad)'},
    127 ]);
    128 </script>