javascript側で現在表示されているアクティブページが指定できるjQueryのロールオーバープラグイン。
現在のページはどうやって指定するの?
CSSでロールオーバーを実装する際は、bodyにページ固有のidを振っておけば、ナビゲーション部分のHTMLを全ページ共通のものにしておい て、CSS側で今いるページのナビ画像だけ変更できた。でも、javascriptでロールオーバーを実装する際、今いるアクティブなページには、最初か らロールオーバー状態の画像を使いたいなーと思っても、HTML側の画像のパスを、ロールオーバー後のものにするしかない。つまり、共通のHTMLが使えない。何かいい方法がないか調べてみたけど、あまりそういった問題を取り上げた記事はないみたい。みんな、どうやってるの?
方法を考えてみました。
まず、ロールオーバーに使用するスクリプトですが、input要素にも使えるjQueryのロールオーバープラグイン|Rewish様
上記のものがすばらしいので、使わせていただきます。Rewishさんのページは、デザインも、内容も、とっても勉強になり、個人的に大好きです。
このスクリプトは、ロールオーバーさせたい画像を指定して実行します。例えば、
$(function(){
$('#globalnavi li a img').rollover();
});これを、共通のHTMLを使ったまま、今いるページの画像をロールオーバー後のものにするやり方をがんばって考えてみました。例えば、今いるページが「ページ3」だった場合、
$(function(){
$('#globalnavi li:not(#n03) a img').rollover();
$("#n03 a img").attr("src","img/common/nav-03_on.gif");
});ここまでやって気づいたのが、HTML側は変わらないけど、javascript側が変わるので、おんなじだよねってこと。しかも、なんか記述が面倒くさいし。だから、誰もやんなかったのね。
jQueryロールオーバープラグインを改造
需要はともかく、上記を踏まえて、jQueryを勉強する目的で、アクティブにしたいimg要素を簡単に指定できるようにスクリプトを改造してみました。自分用ですが、せっかくなので以下よりダウンロードできます。
$(function(){
$('#globalnavi li a img').rollover('#globalnavi li#n03 a img');
});
DOWNLOAD - jquery.rollover.js
0 件のコメント:
コメントを投稿