マウスオーバーのイメージを差し替える(rollover)
core. ロールオーバーの画像差し替え機能。よく使いそうなので考えてみました。
これもよく使われる機能ですので、Dojoを使ってシンプルなものを作ってみます。基本的なスクリプトの仕様は最もシンプルで快適なDaniel Nolan氏作のものを参考にしました。
<img src=".../rollover.gif" alt="Some Image" class="imgover" /> <script type="text/javascript"> dojo.addOnLoad(rollover); function rollover(opts) { var settings = { hoverclass:'imgover',suffix:'_o' }; if (opts) for (var k in opts) settings[k] = opts[k]; //対象クラスすべてに処理 dojo.query("img."+settings.hoverclass).forEach( function(el){ var src = el.getAttribute('src'); el.setAttribute('osrc', src); var hsrc = src.replace(/(\.gif|\.jpg|\.png)/, settings.suffix+"$1"); el.setAttribute('hsrc', hsrc); //preload var temp = new Image(); temp.src = hsrc; dojo.connect(el,"onmouseover",function(){ el.setAttribute('src', el.getAttribute('hsrc')); }); dojo.connect(el,"onmouseout",function(){ el.setAttribute('src', el.getAttribute('osrc')); }); } ); } </script>
マウスオーバーで変更したいAタグに定義するクラス(hoverclass)、オーバー時に表示する画像ファイル名のあとに付加する名称(suffix)を指定します。初期値はそれぞれ、"imgover", "_o" です。
サンプル:

