File: container-units-animation.html

package info (click to toggle)
thunderbird 1%3A143.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 4,703,968 kB
  • sloc: cpp: 7,770,492; javascript: 5,943,842; ansic: 3,918,754; python: 1,418,263; xml: 653,354; asm: 474,045; java: 183,079; sh: 111,238; makefile: 20,410; perl: 14,359; objc: 13,059; yacc: 4,583; pascal: 3,405; lex: 1,720; ruby: 999; exp: 762; sql: 715; awk: 580; php: 436; lisp: 430; sed: 69; csh: 10
file content (70 lines) | stat: -rw-r--r-- 2,303 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!doctype html>
<title>Container Relative Units: Animation</title>
<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
<style>
  #container {
    container-type: size;
    width: 200px;
    height: 200px;
  }

  @keyframes anim_cqw { from { top: 20cqw; } to { top: 40cqw; } }
  @keyframes anim_cqh { from { top: 20cqh; } to { top: 40cqh; } }
  @keyframes anim_cqi { from { top: 20cqi; } to { top: 40cqi; } }
  @keyframes anim_cqb { from { top: 20cqb; } to { top: 40cqb; } }
  @keyframes anim_cqmin { from { top: 20cqmin; } to { top: 40cqmin; } }
  @keyframes anim_cqmax { from { top: 20cqmax; } to { top: 40cqmax; } }

  #container > div {
    animation-delay: -5s;
    animation-play-state: paused;
    animation-duration: 10s;
    animation-timing-function: linear;
  }

  #element_cqw { animation-name: anim_cqw; }
  #element_cqh { animation-name: anim_cqh; }
  #element_cqi { animation-name: anim_cqi; }
  #element_cqb { animation-name: anim_cqb; }
  #element_cqmin { animation-name: anim_cqmin; }
  #element_cqmax { animation-name: anim_cqmax; }

</style>
<div id=container>
  <div id=element_cqw></div>
  <div id=element_cqh></div>
  <div id=element_cqi></div>
  <div id=element_cqb></div>
  <div id=element_cqmin></div>
  <div id=element_cqmax></div>
</div>
<script>
  setup(() => assert_implements_size_container_queries());

  const units = ['cqw', 'cqh', 'cqi', 'cqb', 'cqmin', 'cqmax'];

  for (let unit of units) {
    test(() => {
      let element = document.getElementById(`element_${unit}`)
      assert_equals(getComputedStyle(element).top, '60px');
    }, `Animation using ${unit} unit`);

    test(() => {
      let element = document.getElementById(`element_${unit}`)
      assert_equals(getComputedStyle(element).top, '60px');
      try {
        container.style.width = '300px';
        container.style.height = '300px';
        assert_equals(getComputedStyle(element).top, '90px');
      } finally {
        container.style = '';
      }

      assert_equals(getComputedStyle(element).top, '60px');
    }, `Animation using ${unit} unit responds to changing container size`);
  }

</script>