jQueryでランダムに浮かび上ってはじけるシャボン玉風スプラッシュを作ってみました!

ランダムに浮かび上ってはじけるシャボン玉風のスプラッシュをjQueryで作ってみました。

読み込みが完了すると自動で開始します。

↓以下が実際のソースサンプルです。

<script>
$(function () {
	var i = 0,
		v = 1,
		splash;

	function splashMotion() {
		i = 0;
		v = 1;
		splash = Math.ceil(Math.random() * 6) + 6;

		while (i < splash) {
			$("#main").prepend("<div class='splash'></div>");
			i++;
		}

		$(".splash").each(function () {
			var $this = $(this);
			splashSize = Math.ceil(Math.random() * 4) + 10;
			splashSize2 = Math.ceil(Math.random() * 4);
			splashColor = Math.ceil(Math.random() * 6);
			splashTime = Math.ceil(Math.random() * 7) + 7;
			splashPositionX = Math.ceil(Math.random() * 100);
			splashPositionY = Math.ceil(Math.random() * 100);

			if (splashColor === 1) {
				splashColor = "#f00";
			} else if (splashColor === 2) {
				splashColor = "#0f0";
			} else if (splashColor === 3) {
				splashColor = "#00f";
			} else if (splashColor === 4) {
				splashColor = "#ff0";
			} else if (splashColor === 5) {
				splashColor = "#f0f";
			} else {
				splashColor = "#0ff";
			}

			$(this).css({
				"width": "0",
				"height": "0",
				"background": splashColor,
				"left": splashPositionX + "%",
				"top": splashPositionY + "%"
			});

			$(this).delay(v * 100).animate({
				"width": (splash * splashSize * splashSize2) / 3 + "px",
				"height": (splash * splashSize * splashSize2) / 3 + "px",
				"margin-left": "-" + (((splash * splashSize * splashSize2) / 3) / 2) + "px",
				"margin-top": "-" + (((splash * splashSize * splashSize2) / 3) / 2) + "px",
				"opacity": "0.6"
			}, 400, function () {
				$this.animate({
					"width": (splash * splashSize * splashSize2) + "px",
					"height": (splash * splashSize * splashSize2) + "px",
					"margin-left": "-" + ((splash * splashSize * splashSize2) / 2) + "px",
					"margin-top": "-" + ((splash * splashSize * splashSize2) / 2) + "px",
					"opacity": "0"
				}, 300, function () {
					$this.remove();
				});
			});
			v++;
		});
	}

	splashMotion();

	setInterval(function () {
		splashMotion();
	}, 2300);
});
</script>
<style>
		* {
			margin: 0;
			padding: 0;
			border: 0;
		}

		#main {
			position: relative;
			width: 100%;
			height: 600px;
			overflow: hidden;
		}

		.splash {
			position: absolute;
			z-index: 0;
			border-radius: 50%;
			opacity: 0;
		}
</style>
<div id="main">
</div>

デモページは、こちら