blob: 634384f927dce9ce81711e7c1d1df39fd8299bf2 [file] [log] [blame]
<!DOCTYPE html>
<meta charset="UTF-8">
<style>
.parent {
rotate: 90deg;
}
.target {
width: 40px;
height: 20px;
background-color: grey;
rotate: 10deg;
}
.expected {
background-color: green;
}
</style>
<template id="target-template">
<div class="parent">
<div class="target">Text</div>
</div>
</template>
<script src="resources/interpolation-test.js"></script>
<script>
assertInterpolation({
property: 'rotate',
from: 'none',
to: '30deg',
}, [
{at: -1, is: '-30deg'},
{at: 0, is: 'none'},
{at: 0.25, is: '7.5deg'},
{at: 0.75, is: '22.5deg'},
{at: 1, is: '30deg'},
{at: 2, is: '60deg'},
]);
assertInterpolation({
property: 'rotate',
from: neutralKeyframe,
to: '30deg',
}, [
{at: -1, is: '-10deg'},
{at: 0, is: '10deg'},
{at: 0.25, is: '15deg'},
{at: 0.75, is: '25deg'},
{at: 1, is: '30deg'},
{at: 2, is: '50deg'},
]);
assertInterpolation({
property: 'rotate',
from: 'inherit',
to: '270deg',
}, [
{at: -1, is: '-90deg'},
{at: 0, is: '90deg'},
{at: 0.25, is: '135deg'},
{at: 0.75, is: '225deg'},
{at: 1, is: '270deg'},
{at: 2, is: '450deg'},
]);
assertInterpolation({
property: 'rotate',
from: 'unset',
to: '30deg',
}, [
{at: -1, is: '-30deg'},
{at: 0, is: 'none'},
{at: 0.25, is: '7.5deg'},
{at: 0.75, is: '22.5deg'},
{at: 1, is: '30deg'},
{at: 2, is: '60deg'},
]);
assertInterpolation({
property: 'rotate',
from: '100deg',
to: '-100deg',
}, [
{at: -1, is: '300deg'},
{at: 0, is: '100deg'},
{at: 0.25, is: '50deg'},
{at: 0.75, is: '-50deg'},
{at: 1, is: '-100deg'},
{at: 2, is: '-300deg'},
]);
assertInterpolation({
property: 'rotate',
from: '0 1 0 100deg',
to: '0 1 0 -100deg',
}, [
{at: -1, is: '0 1 0 300deg'},
{at: 0, is: '0 1 0 100deg'},
{at: 0.25, is: '0 1 0 50deg'},
{at: 0.75, is: '0 1 0 -50deg'},
{at: 1, is: '0 1 0 -100deg'},
{at: 2, is: '0 1 0 -300deg'},
]);
assertInterpolation({
property: 'rotate',
from: '1 -2.5 3.64 100deg',
to: '1 -2.5 3.64 -100deg',
}, [
{at: -1, is: '1 -2.5 3.64 300deg'},
{at: 0, is: '1 -2.5 3.64 100deg'},
{at: 0.25, is: '1 -2.5 3.64 50deg'},
{at: 0.75, is: '1 -2.5 3.64 -50deg'},
{at: 1, is: '1 -2.5 3.64 -100deg'},
{at: 2, is: '1 -2.5 3.64 -300deg'},
]);
assertInterpolation({
property: 'rotate',
from: '1 0 0 0deg',
to: '0 1 0 10deg',
}, [
{at: -1, is: '0 1 0 -10deg'},
{at: 0, is: '1 0 0 0deg'},
{at: 0.25, is: '0 1 0 2.5deg'},
{at: 0.75, is: '0 1 0 7.5deg'},
{at: 1, is: '0 1 0 10deg'},
{at: 2, is: '0 1 0 20deg'},
]);
assertInterpolation({
property: 'rotate',
from: '1 1 0 90deg',
to: '0 1 1 135deg',
}, [
{at: -1, is: '0.67 -0.06 -0.74 124.97deg'},
{at: 0, is: '1 1 0 90deg'},
{at: 0.25, is: '0.54 0.8 0.26 94.83deg'},
{at: 0.75, is: '0.17 0.78 0.61 118.68deg'},
{at: 1, is: '0 1 1 135deg'},
{at: 2, is: '0.52 -0.29 -0.81 151.04deg'},
]);
assertInterpolation({
property: 'rotate',
from: '0 1 0 0deg',
to: '1 0 0 450deg',
}, [
{at: -1, is: '1 0 0 -450deg'},
{at: 0, is: '0 1 0 0deg'},
{at: 0.25, is: '1 0 0 112.5deg'},
{at: 0.75, is: '1 0 0 337.5deg'},
{at: 1, is: '1 0 0 450deg'},
{at: 2, is: '1 0 0 900deg'},
]);
assertInterpolation({
property: 'rotate',
from: '1 0 0 450deg',
to: '0 1 0 0deg',
}, [
{at: -1, is: '1 0 0 900deg'},
{at: 0, is: '1 0 0 450deg'},
{at: 0.25, is: '1 0 0 337.5deg'},
{at: 0.75, is: '1 0 0 112.5deg'},
{at: 1, is: '0 1 0 0deg'},
{at: 2, is: '1 0 0 -450deg'},
]);
</script>