はまちちゃんの「空から女の子が降ってくるBookmarklet」をIE6で使えないかと削ってみたけれど、挫折

空から女の子が降ってくる - ぼくはまちちゃん!
こちらBookmarkletが素晴らしいですが、文字数の兼ね合いでIE6では使えないので、どうにか短くできないものかと考えてみました。
始め自力でチャレンジしてみたのですが、それでは682バイトまでしか出来ませんでした orz



追記(2009-01-10)

id:murky-satyrさんが、IE6でも動くバージョンを制作されたので
fallingirl.bml.js · GitHub
以下の不安定なものより、こちらを使った方がずっと良いです。





で、id:cho45さんの632バイトのものを参考にして
http://d.hatena.ne.jp/cho45/20090109#1231489972
JS のコードを短かくする Tips - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech

それをさらに詰めて615バイト。
処理自体には手を加えない方向だと、これで個人的にはちょっと限界。
あとは、諦めて中身に手を加える方向で

w=(t.innerWidth||D[E][A]||b[A])-Q.width;
h=(t.innerHeight||D[E][B]||b[B])-Q.height;

IE6用(を目指す)ということで、innerWidth、innerHeightはカット。画像サイズも固定だから、実際のピクセルサイズにしてしまう*1


そうすると570バイト。

これでたぶん safari だと不具合が出るようになったけど、Firefoxでは大丈夫。




でも IE6 だとまだなので、さらに削る。
このBookmarkletでは、3枚の画像が使われていて
http://d.hatena.ne.jp/km37/20090110#1231542899
「落下」「着地寸前」「着地」を順に入れ替えている、ここの2枚目の画像「着地寸前」を切り換える部分を泣く泣くカット*2

これで 516バイト。
あとちょっとなんだけど、ここまで来てどうにも煮詰まってきたので断念という。落下速度をランダムでなく固定にしても面白くないし、どうしたものかなー。
……と、書いておくと誰かがやってくれそうな気がするので、中途半端でも書いてみた次第。



追記:(2009-01-10)

あとはMath.floor(a)→~~(a)とか。出てくる回数にもよるけど。

はてなブックマーク - furyu-teiのブックマーク / 2009年1月10日

Math.floor を使わずに小数を整数にする - IT戦記
こちらを参考にして、今回は11バイト削れるのでようやくIE6で動くように

505バイト。
ただし、IE6で実行すると setInterval の待機時間がなぜか無視される。具体的に言えば、女の子が一気に沢山出過ぎてブラウザが固まってしまう。これはどうした方が良いだろう?制限文字数に収める対処が分からなかったので、問題は認識しつつも公開。
あくまで正式な動作はモダンブラウザを使って、元のBookmarkletでやって欲しいけど、IE6でも何となく雰囲気をつかみたい、という人は自己責任でやってみてください。

><

*1:これだと後から画像を差し換えるときに困るけど

*2:よく見たらはいてなくてふいた