<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CSS Transition of SVG elements</title>
<style type="text/css" media="screen">
div {
-webkit-box-sizing: border-box;
}
.column {
margin: 10px;
display: inline-block;
vertical-align: top;
}
.container {
position: relative;
height: 200px;
width: 200px;
margin: 10px;
background-color: silver;
border: 1px solid black;
}
.box {
position: absolute;
top: 0;
left: 0;
height: 60px;
width: 60px;
border: 1px dotted black;
transform-origin: top left; /* to match SVG */
}
.final {
border: 1px solid blue;
}
#target, #ref {
transition-property: transform;
transition-duration: 1s;
}
</style>
<script type="text/javascript" charset="utf-8">
var flag = true;
function transition() {
var svgElm = document.getElementById("target");
var divElm = document.getElementById("ref");
if (flag) {
svgElm.style.transform = "translate(75px, 25px) scale(2) rotate(45deg)";
divElm.style.transform = "translate(75px, 25px) scale(2) rotate(45deg)";
}
else {
svgElm.style.transform = "translate(0px, 0px) scale(1) rotate(0deg)";
divElm.style.transform = "translate(0px, 0px) scale(1) rotate(0deg)";
}
flag = !flag;
}
</script>
</head>
<body>
<h1>CSS Transition of "trasform" property for SVG elements</h1>
<p>The element below should transition when button is clicked</p>
<p>The SVG transition should be identical with the CSS one</p>
<input type="button" value="Transition" onclick="transition()" />
<div class="column">
<h2>SVG compound</h2>
<div class="container">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
viewBox="0 0 200 200" style="width:200px; height:200px;">
<rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
</rect>
</svg>
</div>
<h2>CSS compound</h2>
<div class="container">
<div class="final box" id="ref">
</div>
</div>
</div>
</body>
</html>