OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <meta charset=utf-8> | 2 <meta charset=utf-8> |
3 <title>Keyframe spacing tests</title> | 3 <title>Keyframe spacing tests</title> |
4 <link rel="help" href="https://w3c.github.io/web-animations/#spacing-keyframes"> | 4 <link rel="help" href="https://w3c.github.io/web-animations/#spacing-keyframes"> |
5 <script src="/resources/testharness.js"></script> | 5 <script src="/resources/testharness.js"></script> |
6 <script src="/resources/testharnessreport.js"></script> | 6 <script src="/resources/testharnessreport.js"></script> |
7 <script src="../../testcommon.js"></script> | 7 <script src="../../testcommon.js"></script> |
8 <body> | 8 <body> |
9 <div id="log"></div> | 9 <div id="log"></div> |
10 <script> | 10 <script> |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 var frames = anim.effect.getKeyframes(); | 315 var frames = anim.effect.getKeyframes(); |
316 assert_equals(frames[1].computedOffset, 0.5 * 1 / 2, | 316 assert_equals(frames[1].computedOffset, 0.5 * 1 / 2, |
317 '2nd frame offset using distribute spacing'); | 317 '2nd frame offset using distribute spacing'); |
318 assert_equals(frames[3].computedOffset, 0.5 + 0.5 * 1 / 2, | 318 assert_equals(frames[3].computedOffset, 0.5 + 0.5 * 1 / 2, |
319 '4th frame offset using distribute spacing because it is the ' + | 319 '4th frame offset using distribute spacing because it is the ' + |
320 'first paceable keyframe from a non-null offset keyframe'); | 320 'first paceable keyframe from a non-null offset keyframe'); |
321 }, 'Test paced spacing only for keyframes specifying all some components, ' + | 321 }, 'Test paced spacing only for keyframes specifying all some components, ' + |
322 'and falling back to distribute spacing for the reset with some specific ' + | 322 'and falling back to distribute spacing for the reset with some specific ' + |
323 'offsets'); | 323 'offsets'); |
324 | 324 |
325 // Bug 1276193: Test for mixing percent and pixel values. | 325 // Tests for setting spacing by KeyframeEffect.spacing. |
| 326 |
| 327 test(function(t) { |
| 328 var anim = createDiv(t).animate([ { marginLeft: '0px' }, |
| 329 { marginLeft: '-20px' }, |
| 330 { marginLeft: '100px' }, |
| 331 { marginLeft: '50px' } ], |
| 332 { duration: 100 * MS_PER_SEC }); |
| 333 |
| 334 anim.effect.spacing = 'paced(margin-left)'; |
| 335 |
| 336 var frames = anim.effect.getKeyframes(); |
| 337 var cumDist = [0, 20, 140, 190]; |
| 338 assert_equals(frames[0].computedOffset, 0.0, |
| 339 '1st frame offset'); |
| 340 assert_equals(frames[1].computedOffset, cumDist[1] / cumDist[3], |
| 341 '2nd frame offset'); |
| 342 assert_equals(frames[2].computedOffset, cumDist[2] / cumDist[3], |
| 343 '3rd frame offset'); |
| 344 assert_equals(frames[3].computedOffset, 1.0, |
| 345 'last frame offset'); |
| 346 }, 'Test paced spacing by setter'); |
| 347 |
| 348 test(function(t) { |
| 349 var anim = createDiv(t).animate([ { marginLeft: '0px' }, |
| 350 { marginLeft: '-20px' }, |
| 351 { marginLeft: '100px' }, |
| 352 { marginLeft: '50px' } ], |
| 353 { duration: 100 * MS_PER_SEC, |
| 354 spacing: 'paced(margin-left)' }); |
| 355 |
| 356 anim.effect.spacing = 'distribute'; |
| 357 |
| 358 var frames = anim.effect.getKeyframes(); |
| 359 var slots = frames.length - 1; |
| 360 assert_equals(frames[0].computedOffset, 0.0, '1st frame offset'); |
| 361 assert_equals(frames[1].computedOffset, 1.0 / slots, '2nd frame offset'); |
| 362 assert_equals(frames[2].computedOffset, 2.0 / slots, '3rd frame offset'); |
| 363 assert_equals(frames[3].computedOffset, 1.0, 'last frame offset'); |
| 364 }, 'Test distribute spacing by setter'); |
| 365 |
| 366 test(function(t) { |
| 367 var anim = |
| 368 createDiv(t).animate([ { marginLeft: '0px', borderRadius: '0%' }, |
| 369 { marginLeft: '-20px', borderRadius: '50%' }, |
| 370 { marginLeft: '100px', borderRadius: '25%' }, |
| 371 { marginLeft: '50px', borderRadius: '100%' } ], |
| 372 { duration: 100 * MS_PER_SEC, |
| 373 spacing: 'paced(margin-left)' }); |
| 374 |
| 375 anim.effect.spacing = 'paced(border-radius)'; |
| 376 |
| 377 var frames = anim.effect.getKeyframes(); |
| 378 var cumDist = [0, 50, 50 + 25, 50 + 25 + 75]; |
| 379 |
| 380 assert_equals(frames[0].computedOffset, 0.0, |
| 381 '1st frame offset'); |
| 382 assert_equals(frames[1].computedOffset, cumDist[1] / cumDist[3], |
| 383 '2nd frame offset'); |
| 384 assert_equals(frames[2].computedOffset, cumDist[2] / cumDist[3], |
| 385 '3rd frame offset'); |
| 386 assert_equals(frames[3].computedOffset, 1.0, |
| 387 'last frame offset'); |
| 388 }, 'Test paced spacing by changing the paced property'); |
326 | 389 |
327 </script> | 390 </script> |
328 </body> | 391 </body> |
OLD | NEW |