はまちちゃんの「空から女の子が降ってくる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でも何となく雰囲気をつかみたい、という人は自己責任でやってみてください。
><