サムネイル表示

以前作ったスライドショーとは逆のパターンで、サムネイルが無い画像リンクに対してサムネイル画像を表示するブックマークレットを作ってみました。チラッと (怖い画像じゃないか、とか) 内容を確認したい場合に便利でしょう。

画面の真ん中らへんにご注目ください:

リンクへのマウスオーバーでサムネイルが現れ、クリックで消えます。また、サムネイルは同時に一つしか出現しないように工夫してみました。

問題点として、読み込み途中で消したり、他の画像に移ると、ブラウザの「読み込み中」の表示がずっと続いてしまう現象が起きるようです。今のところ解決方法は分かりません。

例によって IE でのみテストしています。こちらからどうぞ。

なお、リンクにイベント・ハンドラを割り当てる具体例として、下記のサイトにある "Overlay Images" (非 IE 用) というブックマークレットを参考にさせていただきました。感謝いたします。
http://www-ui.is.s.u-tokyo.ac.jp/~kobayash/misc/bookmarklets.html

Update [20060209]:

些細なことなんですが、イベント・ハンドラを無名関数として多数の HTML オブジェクトに割り当てる実装は、メモリー使用の点でちょっと不経済かなと思いました。なので、名前を付けて、それへの参照を割り当てるように変更してみました。

局所変数を保持し続ける、所謂クロージャとして実装する必要があるケースだと元のままで良かったんですが、今回は関数が割り当てられている要素を知ることができれば良かったので (this が使える)、この変更が可能でした。

あと、実験的に、サムネイル画像が常にウィンドウ内に治まるように工夫をしてみました。が、これがうまくいかないサイトが稀にあるようです。具体的には document.body.scrollTop の値が、下方にスクロールしていても 0 になってしまうという現象が起きます。IE のバグなんでしょうが、どのような設定をすると起きるのかは不明です。