mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 19:21:34 +08:00
144 lines
3.9 KiB
HTML
Executable File
144 lines
3.9 KiB
HTML
Executable File
<!DOCTYPE html>
|
|
<meta charset="UTF-8">
|
|
<style>
|
|
.target {
|
|
width: 100px;
|
|
height: 100px;
|
|
display: inline-block;
|
|
border: 10px solid black;
|
|
background-repeat: no-repeat;
|
|
}
|
|
.replica {
|
|
border-color: green;
|
|
margin-right: 2px;
|
|
}
|
|
</style>
|
|
<body>
|
|
<script src="../testharness/testharness.js"></script>
|
|
<script src="../testharness/testharnessreport.js"></script>
|
|
<script src="resources/interpolation-test.js"></script>
|
|
<script>
|
|
// Image to image
|
|
var from = 'url(../resources/blue-100.png)';
|
|
var to = 'url(../resources/green-100.png)';
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
|
|
{at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Image to gradient
|
|
from = 'url(../resources/blue-100.png)';
|
|
to = 'linear-gradient(45deg, blue, orange)';
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
|
|
{at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Gradient to gradient
|
|
from = 'linear-gradient(-45deg, red, yellow)';
|
|
to = 'linear-gradient(45deg, blue, orange)';
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.3)'},
|
|
{at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + to + ', 0.6)'},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Keyword to image
|
|
from = 'none';
|
|
to = 'url(../resources/green-100.png)';
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: from},
|
|
{at: 0.6, is: to},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Multiple to multiple
|
|
var fromA = 'url(../resources/stripes-100.png)';
|
|
var fromB = 'linear-gradient(-45deg, blue, transparent)';
|
|
var toA = 'url(../resources/blue-100.png)';
|
|
var toB = 'url(../resources/stripes-100.png)';
|
|
from = fromA + ', ' + fromB;
|
|
to = toA + ', ' + toB;
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.3), -webkit-cross-fade(' + fromB + ', ' + toB + ', 0.3)'},
|
|
{at: 0.6, is: '-webkit-cross-fade(' + fromA + ', ' + toA + ', 0.6), -webkit-cross-fade(' + fromB + ', ' + toB + ', 0.6)'},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Single to multiple
|
|
from = 'url(../resources/blue-100.png)';
|
|
var toA = 'url(../resources/stripes-100.png)';
|
|
var toB = 'url(../resources/green-100.png)';
|
|
to = toA + ', ' + toB;
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
// The interpolation of different numbers of background-images looks a bit strange here.
|
|
// Animating background-image is not specified to be possible however we do it for backwards compatibility.
|
|
// With this in mind we kept the implementation simple at the expense of this corner case because there is
|
|
// no official specification to support.
|
|
{at: -0.3, is: from + ', ' + from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.3), -webkit-cross-fade(' + from + ', ' + toB + ', 0.3)'},
|
|
{at: 0.6, is: '-webkit-cross-fade(' + from + ', ' + toA + ', 0.6), -webkit-cross-fade(' + from + ', ' + toB + ', 0.6)'},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
|
|
// Multiple mismatched types
|
|
from = 'url(../resources/blue-100.png), none';
|
|
to = 'url(../resources/stripes-100.png), url(../resources/green-100.png)';
|
|
assertInterpolation({
|
|
property: 'background-image',
|
|
from: from,
|
|
to: to,
|
|
}, [
|
|
{at: -0.3, is: from},
|
|
{at: 0, is: from},
|
|
{at: 0.3, is: from},
|
|
{at: 0.6, is: to},
|
|
{at: 1, is: to},
|
|
{at: 1.5, is: to},
|
|
]);
|
|
</script>
|
|
</body>
|