28 lines
1 KiB
HTML
28 lines
1 KiB
HTML
<!DOCTYPE html>
|
|
<title>beginElement() timing</title>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<svg width="100" height="20" style="border: grey 1px solid">
|
|
<rect width="1" height="20">
|
|
<animateMotion path="M0,0h100" dur="100ms"/>
|
|
</rect>
|
|
</svg>
|
|
<script>
|
|
async_test(t => {
|
|
const svg = document.querySelector('svg');
|
|
const motion = document.querySelector('animateMotion');
|
|
motion.addEventListener('endEvent', t.step_func(() => {
|
|
t.step_timeout(t.step_func(() => {
|
|
motion.beginElement();
|
|
let start = svg.getCurrentTime();
|
|
requestAnimationFrame(t.step_func_done(() => {
|
|
svg.pauseAnimations();
|
|
let elapsed = svg.getCurrentTime() - start;
|
|
let expected_pos = Math.min(elapsed * 1000, 100);
|
|
let actual_pos = motion.parentElement.getCTM().e;
|
|
assert_approx_equals(actual_pos, expected_pos, 2, `position after ${elapsed}`);
|
|
}));
|
|
}), 50);
|
|
}), { once: true });
|
|
});
|
|
</script>
|