A very nice working example I created with pure CSS: http://demo.web3designs.com/animated-bubble-upwards-continuously-with-pure-css.htm
CSS
@keyframes greenPulse { 0% {box-shadow:0 0 30px #4bbec8} 50% {box-shadow:0 0 80px #4bbec8} 100% {box-shadow:0 0 30px #4bbec8} } div#beaker span.glow { width:100%; height:100%; background:##222; position:relative; display:block; border-radius:200px; animation:greenPulse 2s infinite; -webkit-animation:greenPulse 2s infinite; -moz-animation:greenPulse 2s infinite; -o-animation:greenPulse 2s infinite; } @keyframes bubbleUp { 0% {bottom:110px;-webkit-transform:scale(.9);opacity:0} 1% {bottom:110px;-webkit-transform:scale(.3);opacity:0} 30% {bottom:110px;-webkit-transform:scale(.8);opacity:1} 95% {bottom:545px;-webkit-transform:scale(.3);opacity:1} 99% {bottom:550px;-webkit-transform:scale(3);opacity:0} 100% {bottom:110px;-webkit-transform:scale(.9);opacity:0} } div#beaker span.bubble { background:#fff; width:80px; height:80px; position:absolute; display:block; left:110px; bottom:110px; border-radius:100px; background:-moz-radial-gradient(center 45deg, circle closest-corner, rgba(75,190,200,0), rgba(75,190,200,.1), rgba(75,190,200,.3), rgba(255,255,255,.7)); background:-webkit-gradient(radial, center center, 0, center center, 100, from(rgba(75,190,200,.2)), to(rgba(255,255,255,.7))); background:gradient(center 45deg, circle closest-corner, rgba(75,190,200,0), rgba(75,190,200,.1), rgba(75,190,200,.3), rgba(255,255,255,.7)); background: -ms-radial-gradient(center, ellipse cover, rgba(255,255,255,0) 0%, rgba(9,133,167,0.1) 51%, rgba(9,133,167,0.3) 71%, rgba(9,133,167,.7) 100%); animation:bubbleUp 4s infinite ease-in-out; -webkit-animation:bubbleUp 4s infinite ease-in-out; -o-animation:bubbleUp 4s infinite ease-in-out; -moz-animation:bubbleUp 4s infinite ease-in-out; }