<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="612" height="792" viewBox="0, 0, 612, 792">
  <defs>
    <clipPath id="Clip_1">
      <path d="M181,460.269 L244.667,487.309 L244.667,699.763 L181,699.763 L181,460.269 z"/>
    </clipPath>
    <clipPath id="Clip_2">
      <path d="M154.26,57.171 L580.144,171.287 L466.029,597.171 L40.144,483.056 L154.26,57.171 z"/>
    </clipPath>
  </defs>
  <g id="Layer_1">
    <path d="M89.69,106.717 L530.598,106.717 L530.598,547.625 L89.69,547.625 L89.69,106.717 z" fill="#FFFFFF" id="square"/>
    <g clip-path="url(#Clip_1)" id="tail-mask">
      <path d="M184.343,446.602 L239.343,446.602 L239.343,617.658 L184.343,652.513 L184.343,446.602 z" fill="#FFFFFF" id="tail"/>
    </g>
    <g clip-path="url(#Clip_2)" id="pee-mask">
      <path d="M212.334,538.854 C212.334,538.854 211.855,331.045 211.855,327.693 C211.855,272.558 255.773,227.861 309.948,227.861 C364.124,227.861 408.042,272.558 408.042,327.693 C408.042,382.829 364.124,427.526 309.948,427.526 C309.948,427.526 211.793,436.962 211.793,332.991" fill-opacity="0" stroke="#3399CC" stroke-width="55" id="pee"/>
    </g>
    <path d="M211.301,370.947 C196.113,370.947 183.801,358.635 183.801,343.447 C183.801,328.259 196.113,315.947 211.301,315.947 C226.489,315.947 238.801,328.259 238.801,343.447 C238.801,358.635 226.489,370.947 211.301,370.947 z" fill="#3399CC" id="circle"/>
  </g>
</svg>
body{
  margin: 0;
  padding: 0;
  background-color: #39c; 
}
svg{
  display: block;
  margin: 0 auto;
  max-width: 300px;
  max-height: 300px;
  top: 0; 
}

#pee{
  visibility: hidden;
}

#tail{
  visibility: hidden; 
}
$('document').ready(function(){
  var tween = new TimelineMax({
    repeat:-1
  }); 
  
  tween
    .to("#tail", 0, {y:"-=140"})
    .to('#square', 0.8, {rotation:15, transformOrigin:"50% 50%", ease: Elastic.easeOut})
    .fromTo("#circle", 0.8, {scale:0, transformOrigin:"50% 50%"}, {scale:1, delay:-0.3, ease:Elastic.easeOut})
    .set("#pee", {visibility:"visible"})
    .set("#tail", {visibility:"visible"})
    .from("#pee", 1.6, {drawSVG:"100% 100%", ease:Back.easeOut})
    .to("#tail", 0.7, {y:"+=140", ease: Bounce.easeOut, delay:-1.1})

    .to("#tail", 1, {y:"-=140", ease: Elastic.easeIn})

    .from("#pee", 1, {drawSVG:"100% 0%", ease:Power2.easeOut})
    .to("#circle", 1, {scale:0, ease:Elastic.easeOut})
    .to('#square', 0.5, {rotation:90, transformOrigin:"50% 50%", ease: Power4.easeOut,delay:-0.1})
      ;

});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js
  2. //cdnjs.cloudflare.com/ajax/libs/gsap/1.16.1/TweenMax.min.js
  3. //s3-us-west-2.amazonaws.com/s.cdpn.io/16327/DrawSVGPlugin.js?r=11