最近新しいPCを買ってもらいました。

PCの引っ越しをしていると懐かしいソースを発見したので
晒してみようと思います。

/**
 * マウス追跡
 *
 *
 * @param element  target 追跡させるエレメント
 * @param float    spring 弾力定数
 * @param function func   コールバック関数
 */
var MChase = function (target, spring, func) {

	// X軸速度
	var fx = 0;
	// Y軸速度
	var fy = 0;

	// マウス座標X
	var mx = false;
	// マウス座標Y
	var my = false;

	// ターゲット座標X
	var tx;
	// ターゲット座標Y
	var ty;

	// 弾力定数
	if (!spring) spring = 1;

	// タイマーID
	var tmid;

	/////////////////////////////////////
	// 初期値算出

	// 現在ターゲット座標
	tx = parseInt(target.css("left"));
	ty = parseInt(target.css("top"));

	/////////////////////////////////////
	// イベント設定

	// マウスムーブイベント設定
	// マウスが移動する毎にマウス座標を変更
	$(window).bind("mousemove",
		function (e) {

			mx = e.pageX;
			my = e.pageY;

		}
	);

	// マウスオーバーイベントにコールバック関数を設定
	if (func) {
		target.bind("mouseover",
			function () {
				func();
			}
		);
		// アンロード時イベント削除
		$(window).unload(function () {
			target.unbind();
		});
	}

	/////////////////////////////////////
	// 50ms毎に移動処理

	tmid = setInterval(function () {

		// マウス座標がある場合処理継続
		if (!mx || !my) return;

		// ばねX軸速度 px/50ms 弾力定数spring,距離単位pxとした時、1sでFpx移動するとして算出
		sx = (mx - tx) * 0.050 * spring;
		// ばねY軸速度 px/50ms
		sy = (my - ty) * 0.050 * spring;

		// 現在の速度ベクトルに抵抗を加える
		fx *= 0.9;
		fy *= 0.9;

		// 現在の速度ベクトルと弾性力から出した速度ベクトルを合成
		fx += sx;
		fy += sy;

		// 座標算出
		tx += fx;
		ty += fy;

		// 描画
		target.css({top:ty+"px",left:tx+"px"});

	},
	50);

	return tmid;
}
そのまま素直に
MChase($('hogehoge'));
としたところ、マウスの位置がずれていましたw
元のHTMLをのぞいてみると<body>直下に一つ<div>があるだけでした。

なので下のようにして<body>直下においてあげましたw
ついでに、謎のバネ定数(覚えてません)とやらも指定してみましたw
MChase($("").css({position:"absolute",cursor:"default"}).text('acha_maro').appendTo("body"),1.5);
ファイルのタイムスタンプを見ると2010/05/12
プログラミングを初めて半年の頃のでしたw
懐かしいww

当時はjQueryをさわり初めた頃で、pluginとかも全く頭にありませんでした。
コメントとかもなんか恥ずかしい感じですがそのまま晒しておきますw

 
Recent Comment
Categories
Writer
  • hidetarou
  • acha_maro
  • gazza069
  • sin_ya
  • yossy222
  • marionnettezero
  • TUYO
  • shiovo
  • yani_arcana
  • momiji0510
  • keiko_www
  • toma_max
  • kyonmaru
  • __senta
  • kenzo
  • t_suzuki
  • hikari_f
  • macchii
  • mashu