<style>
    div {
        width: 50px;
        height: 50px;
        background-color: yellow;
    }

    div.green {
        width: 100px;
        background-color: green;
        transition-property: background-color;
        transition-duration: 5s;
    }

    div.square {
        width: 100px;
        height: 100px;
        transition-property: height;
        transition-duration: 2s;
    }
</style>
<p id="instructions">
    When you click the Change button, the shape will
    <span id="description"></span>.
    <button style="display: block;" onclick="transition()">Change</button>
</p>
<div id="target"></div>
<script>
    var state = 0;
    var transitions = [
        {className:"green", description:"instantly change into a rectangle and fade from yellow to green over 5 seconds"},
        {className:"", description:"instantly change into a small yellow square"},
        {className:"square", description:"instantly change into a yellow rectangle and then animate into a big yellow square over 2 seconds"},
        {className:"green", description:"instantly change into a yellow rectangle and then animate to a green rectangle over 5 seconds"},
        {className:"", description:"instantly change into a small yellow square"},
        {className:"green", description:"instantly change into a yellow rectangle and fade from yellow to green over 5 seconds"},
        {className:"square", description:"instantly change to a yellow rectangle and then animate into a large yellow square over 2 seconds"},
        {className:"", description:"instantly change into a small yellow square"}
    ];

    document.getElementById("description").innerText = transitions[0].description;

    function transition()
    {
        var target = document.getElementById("target");
        target.className = transitions[state].className;
        state++;
        if (state < transitions.length)
            document.getElementById("description").innerText = transitions[state].description;
        else {
            document.getElementById("instructions").innerText = "Done.";
        }
    }
</script>
