blob: 0cd9069db495dc81a18f0f5f1a560acdfe187f38 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html lang="en">
<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;
-webkit-transform-origin: top left; /* to match SVG */
.final {
border: 1px solid blue;
#target, #ref {
-webkit-transition-property: -webkit-transform;
-webkit-transition-duration: 1s;
<script type="text/javascript" charset="utf-8">
var flag = true;
function transition() {
var svgElm = document.getElementById("target");
var divElm = document.getElementById("ref");
if (flag) { = "translate(75px, 25px) scale(2) rotate(45deg)"; = "translate(75px, 25px) scale(2) rotate(45deg)";
else { = "translate(0px, 0px) scale(1) rotate(0deg)"; = "translate(0px, 0px) scale(1) rotate(0deg)";
flag = !flag;
<h1>CSS Transition of "-webkit-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="" 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">
<h2>CSS compound</h2>
<div class="container">
<div class="final box" id="ref">