WebCore/manual-tests/svg-repaint-foreignObject.svg
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 <svg xmlns="http://www.w3.org/2000/svg"
       
     2         xmlns:xlink="http://www.w3.org/1999/xlink"
       
     3         xmlns:xhtml="http://www.w3.org/1999/xhtml">
       
     4         
       
     5 <script>
       
     6 <![CDATA[
       
     7 var stateIndex = 0;
       
     8 var currentTarget = 0;
       
     9 
       
    10 function stateA() 
       
    11 {
       
    12     document.getElementById("A").textContent = '|A|';
       
    13     document.getElementById("B").textContent = 'B';
       
    14 
       
    15     currentTarget = 0;
       
    16     startAnimation();
       
    17 }
       
    18 
       
    19 function stateB() 
       
    20 {
       
    21     document.getElementById("A").textContent = 'A';
       
    22     document.getElementById("B").textContent = '|B|';
       
    23     currentTarget = 1;
       
    24     startAnimation();
       
    25 }
       
    26 
       
    27 var intervalId = null;
       
    28 
       
    29 function startAnimation() {
       
    30     if (intervalId == null) {
       
    31 	intervalId = setInterval(animationStep, 20);
       
    32     }
       
    33 }
       
    34 
       
    35 function animationStep() {
       
    36     if (Math.abs(stateIndex - currentTarget) < .001) {
       
    37 	clearInterval(intervalId);
       
    38 	intervalId = null;
       
    39 	return;
       
    40     }
       
    41 
       
    42     if (stateIndex < currentTarget) {
       
    43 	stateIndex += 1 / 128;
       
    44     } else {
       
    45 	stateIndex -= 1 / 128;
       
    46     }
       
    47 
       
    48     var elt = document.getElementById("targetGroup");
       
    49 
       
    50     var transform = "translate(" + (100 * stateIndex) + "," + (100 * stateIndex) + ") rotate(" + (405 * stateIndex) + ",100,250) scale(" + (1 +  stateIndex)  + ")" ;
       
    51     var opacity = 1 - .75 * stateIndex;
       
    52 
       
    53     elt.setAttribute("opacity", opacity);
       
    54     elt.setAttribute("transform", transform);
       
    55 }
       
    56 
       
    57 
       
    58 ]]>
       
    59 </script>
       
    60 
       
    61         <text id="A" x="0" y="32" fill="red" font-size="32" onclick="stateA()">|A|</text>
       
    62         <text id="B" x="60" y="32" fill="blue" font-size="32" onclick="stateB()">B</text>
       
    63         <text x="0" y="642" fill="black" font-size="32">Click B and then A above.</text>
       
    64         <text x="0" y="674" fill="black" font-size="32">The animation should have no trails or clipping.</text>
       
    65 
       
    66 	<circle fill="pink" cx="300" cy="300" stroke="lightblue" stroke-width="40" r="300" />
       
    67 
       
    68         <g>
       
    69             <rect fill="yellow" stroke="#000000" stroke-width="2" x="60" y="60" width="170" height="170" />
       
    70 
       
    71 	        <foreignObject  id="targetGroup" x="60" y="60" width="170" height="170" >
       
    72 	            <xhtml:xhtml>
       
    73                         <xhtml:img src="http://www.citilink.com/~grizzly/anigifs/3dolph.gif" width="170" height="170" /><br />
       
    74 	            </xhtml:xhtml>
       
    75                 </foreignObject>
       
    76         </g>
       
    77 
       
    78 
       
    79 </svg>
       
    80 
       
    81